电子说
最近学习了一些框架的使用,发现写框架的大佬确实牛逼,有些东西存在很久了却没什么人注意,一旦大佬写成了一个框架,用起来确实真香!
| 理念
在框架中都会有个集中式状态管理工具,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化!借鉴这个理念,实现对嵌入式项目进行集中式状态管理,下面是初代版的NoahX状态管理工具,友友们有更好的建议可以直接私信,后续再继续迭代升级!
| 实践
main.c文件
#include "reg52.h"#include "delay.h"#include "state.h"
sbit LED = P2 ^ 0;
// 主函数void main(){
while (1) {
if(NoahX.States.state1){
LED = 1;
setState1(0);
}else{
LED = 0;
setState1(1);
}
delay_ms(1000); }}
state.h文件
#ifndef __STATE_H__#define __STATE_H__
// 定义状态数据typedef struct { unsigned char state1;}typeStates;
// 定义状态方法typedef struct { void (*setState1)(unsigned char);}typeMethods;
// 定义数据typedef struct{ typeStates States; typeMethods Methods;}typeMember;
// 初始化数据extern typeMember NoahX;
// 声明函数void setState1(unsigned char param );
#endif
state.c文件
#include "state.h"
// 初始化数据typeMember NoahX = {
{
0, },
{
setState1,
}};
// 定义一个函数void setState1(unsigned char param ){
NoahX.States.state1 = param;}
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !