最近学习了一些框架的使用,发现写框架的大佬确实牛逼,有些东西存在很久了却没什么人注意,一旦大佬写成了一个框架,用起来确实真香!
| 理念
在框架中都会有个集中式状态管理工具,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化!借鉴这个理念,实现对嵌入式项目进行集中式状态管理,下面是初代版的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文章
30浏览量
9138
原文标题:框架|集中式状态管理
文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
OpenHarmony页面级变量的状态管理
@State、@Prop、@Link、@Provide、Consume、@ObjectLink、@Observed和@Watch用于管理页面级变量的状态。
面向新一代多核器件的电源管理技术
部件过去是一个缓慢的过程,因此不可行,现在这种情况正在发生改变。 通过新一代高端多核器件,飞思卡尔推出了 SRPG(状态保持电源门控)概念。这种技术在掉电时不把模块状态存储到外部存储器,而是允许每个
发表于 04-03 09:39
【KL25】初代饭影的开发板学习:Hit the road
本帖最后由 初代饭影 于 2015-1-20 11:37 编辑
本人是大二学生,偶然间知道Andy哥发起的FRDM-KL25Z学习活动。看了一下活动的介绍,打心底觉得,对这个活动真的很有兴趣
发表于 01-08 12:45
【KL25】初代饭影的开发板学习:轻松玩转LED
本帖最后由 初代饭影 于 2015-1-9 21:34 编辑
说起大家玩板子,一开始应该都是那「永恒的流水灯」吧。我也捣鼓了捣鼓,发个帖作学习记录吧~上代码,C语言功力不够感觉代码写得有点乱
发表于 01-09 21:34
华为公开“电池管理系统、健康状态估算方法”专利
本帖最后由 松山归人 于 2021-5-6 11:52 编辑
近日,华为公开“电池健康状态的估算方法、电池管理装置及电池管理系统”专利,公开号为CN112740056A,本申请公开一种电池健康
发表于 05-06 10:57
ACPI高级电源管理的电力状态
ACPI 高级电源管理ACPI 中定义了 G、D、S、C、P 这 5 个大的电力状态。G 状态 Global system stateG 状态表示的是用户看到的整个系统的电力
发表于 12-27 07:42
电源管理的状态有哪几种
1.电源管理的状态Android的Linux内核为系统提供了4种电源状态,内核的源代码为其中的3种定义了名字和对应的宏定义,名字定义在kernel/power/suspend.c中:const
发表于 12-29 06:05
linux 中 ACPI 电源管理 G 状态、S 状态、D 状态、C 状态、P 状态
ACPI 高级电源管理ACPI 中定义了 G、D、S、C、P 这 5 个大的电力状态。G 状态 Global system stateG 状态表示的是用户看到的整个系统的电力
发表于 01-05 14:12
•4次下载
![linux 中 ACPI 电源<b class='flag-5'>管理</b> G <b class='flag-5'>状态</b>、S <b class='flag-5'>状态</b>、D <b class='flag-5'>状态</b>、C <b class='flag-5'>状态</b>、P <b class='flag-5'>状态</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
[PCIe] [电源管理] 面向硬件的ASPM链路状态和L1子状态
的主动状态电源管理(ASPM)。一般来说,无论是系统驱动端硬件(RC)还是设备硬件(EP)都可以通过检测pcie链路上的空闲时间,然后启动电源状态转移。有两种低功率链路状态:L0s,也
发表于 01-11 15:31
•1次下载
![[PCIe] [电源<b class='flag-5'>管理</b>] 面向硬件的ASPM链路<b class='flag-5'>状态</b>和L1子<b class='flag-5'>状态</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Harmony 鸿蒙页面级变量的状态管理
页面级变量的状态管理 @State、@Prop、@Link、@Provide、@Consume、@ObjectLink、@Observed和@Watch用于管理页面级变量的状态。 @S
![Harmony 鸿蒙页面级变量的<b class='flag-5'>状态</b><b class='flag-5'>管理</b>](https://file1.elecfans.com/web2/M00/BE/2B/wKgZomWw_HiAKpg_AABYUWHyQe4370.png)
评论