电子说
最近学习了一些框架的使用,发现写框架的大佬确实牛逼,有些东西存在很久了却没什么人注意,一旦大佬写成了一个框架,用起来确实真香!
| 理念
在框架中都会有个集中式状态管理工具,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化!借鉴这个理念,实现对嵌入式项目进行集中式状态管理,下面是初代版的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条评论
快来发表一下你的评论吧 !