0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

初代版的NoahX状态管理

西西 来源:玩转单片机 作者:玩转单片机 2022-09-13 10:53 次阅读

最近学习了一些框架的使用,发现写框架的大佬确实牛逼,有些东西存在很久了却没什么人注意,一旦大佬写成了一个框架,用起来确实真香!

| 理念

在框架中都会有个集中式状态管理工具,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化!借鉴这个理念,实现对嵌入式项目进行集中式状态管理,下面是初代版的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

    文章

    31

    浏览量

    9159

原文标题:框架|集中式状态管理

文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【KL25】饭影的开发板学习:轻松玩转LED

    本帖最后由 饭影 于 2015-1-9 21:34 编辑 说起大家玩板子,一开始应该都是那「永恒的流水灯」吧。我也捣鼓了捣鼓,发个帖作学习记录吧~上代码,C语言功力不够感觉代码写得有点乱
    发表于 01-09 21:34

    React路由状态如何管理

    React 路由状态管理总结
    发表于 05-19 07:11

    iPhone与Android智能手机大PK

    日前YouTube频道EverythingApplePro上传了一段iPhone与Android手机G1的对比视频,大家可以看看当时的iOS 1.0和Android 1.0的面
    发表于 12-11 22:44 1486次阅读

    iphone与iphone7plus的对比

    iphone与iphone7plus的对比。
    发表于 03-07 17:25 1042次阅读

    iphone8或将回归设计,以水滴形设计以致iphone

    著名的苹果新闻网站AppleInsider今天爆料,称iPhone 8将会采用“水滴状设计”,作为iPhone诞生的10周年产品,致敬iPhone。
    发表于 03-23 16:50 530次阅读

    推出已经7年!苹果iPad Pro和2017新iPad性能分别有多大?

    2010年4月3日,苹果开售iPad Pro,平板电脑走进人们日常生活之中,但iPad发行7年以来好景不常,可拆键盘笔电以及更大屏幕手机的竞争之下,iPad和其他平板电脑销量有点压缩,经过7年之后的新iPad,在性能上与
    发表于 04-07 14:21 1.4w次阅读

    Pixel已下架 ,Pixel 2系列正式独担大旗

    Google Pixel 2 系列自去年 10 月推出以来,虽然是一波三折,但整体评价都算是不错,前辈 Pixel 似乎也是时候功成身退了吧。有人发现到 Google Store 官方网店上,
    的头像 发表于 08-14 14:15 2126次阅读

    苹果将在2019年发布AirPods二

    近日,业界著名分析师郭明池表示,苹果将在2019年发布AirPods二,这款产品在外观设计上与AirPods基本一致,但在功能上会有提升。
    发表于 12-03 15:39 3812次阅读

    网友晒未开封iPod产品 价格已涨50倍

    对于那些酷爱收藏的玩家来说,苹果的不少古老新产品价格都很贵,特别是全新未拆封的。
    的头像 发表于 05-10 09:18 3447次阅读

    Google Pixel手机停止安全更新支持

    谷歌Pixel和Pixel XL手机可能已经达到了安全停止支持期限。谷歌今天发布了其Pixel设备的更新,其中包含11月份安全更新以及一些针对一般生活质量更新。谷歌Pixel 2、3和4系列设备都可以接收OTA更新,但是Google Pixel
    的头像 发表于 11-05 15:21 2522次阅读

    前苹果工程师iPhone生产线照片曝光

    苹果推出iPhone是在2007年,当时那款屏幕只有3.5英寸的手机在今天看来“平平无奇”,但却真正打开了智能手机时代的大门。据外媒报道,前苹果工程师Bob Burrough日前放出了一张
    的头像 发表于 12-28 11:05 1983次阅读

    新一状态监控

    新一状态监控
    发表于 03-20 19:36 6次下载
    新一<b class='flag-5'>代</b><b class='flag-5'>状态</b>监控

    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>

    iPhone SE正式列为过时产品

    如果仍然持有iPhone SE的用户需要维修服务,可能需要提前咨询苹果网点或寻找第三方服务。
    的头像 发表于 12-06 17:22 1391次阅读

    Harmony 鸿蒙应用级变量的状态管理

    应用级变量的状态管理 在前面的章节中,已经讲述了如何管理页面级变量的状态,本章将说明如何管理应用级变量的
    的头像 发表于 01-24 21:30 444次阅读
    Harmony 鸿蒙应用级变量的<b class='flag-5'>状态</b><b class='flag-5'>管理</b>