0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

初代版的NoahX狀態(tài)管理

西西 ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 作者:玩轉(zhuǎn)單片機(jī) ? 2022-09-13 10:53 ? 次閱讀

最近學(xué)習(xí)了一些框架的使用,發(fā)現(xiàn)寫(xiě)框架的大佬確實(shí)牛逼,有些東西存在很久了卻沒(méi)什么人注意,一旦大佬寫(xiě)成了一個(gè)框架,用起來(lái)確實(shí)真香!

| 理念

在框架中都會(huì)有個(gè)集中式狀態(tài)管理工具,它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化!借鑒這個(gè)理念,實(shí)現(xiàn)對(duì)嵌入式項(xiàng)目進(jìn)行集中式狀態(tài)管理,下面是初代版的NoahX狀態(tài)管理工具,友友們有更好的建議可以直接私信,后續(xù)再繼續(xù)迭代升級(jí)!

| 實(shí)踐

main.c文件

#include "reg52.h"#include "delay.h"#include "state.h"
sbit LED = P2 ^ 0;
// 主函數(shù)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__
// 定義狀態(tài)數(shù)據(jù)typedef struct {    unsigned char state1;}typeStates;
// 定義狀態(tài)方法typedef struct {    void (*setState1)(unsigned char);}typeMethods;
// 定義數(shù)據(jù)typedef struct{    typeStates States;    typeMethods Methods;}typeMember;
// 初始化數(shù)據(jù)extern typeMember NoahX;
// 聲明函數(shù)void setState1(unsigned char param );
#endif

state.c文件

#include "state.h"
// 初始化數(shù)據(jù)typeMember NoahX = {  
  {      
  0,    },  
  {      
  setState1,  
  }};
// 定義一個(gè)函數(shù)void setState1(unsigned char param ){
    NoahX.States.state1 = param;}

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)管理
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    9145

原文標(biāo)題:框架|集中式狀態(tài)管理

文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī),微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【KL25】飯影的開(kāi)發(fā)板學(xué)習(xí):輕松玩轉(zhuǎn)LED

    本帖最后由 飯影 于 2015-1-9 21:34 編輯 說(shuō)起大家玩板子,一開(kāi)始應(yīng)該都是那「永恒的流水燈」吧。我也搗鼓了搗鼓,發(fā)個(gè)帖作學(xué)習(xí)記錄吧~上代碼,C語(yǔ)言功力不夠感覺(jué)代碼寫(xiě)得有點(diǎn)亂
    發(fā)表于 01-09 21:34

    React路由狀態(tài)如何管理

    React 路由狀態(tài)管理總結(jié)
    發(fā)表于 05-19 07:11

    iPhone與Android智能手機(jī)大PK

    日前YouTube頻道EverythingApplePro上傳了一段iPhone與Android手機(jī)G1的對(duì)比視頻,大家可以看看當(dāng)時(shí)的iOS 1.0和Android 1.0的面
    發(fā)表于 12-11 22:44 ?1465次閱讀

    iphone與iphone7plus的對(duì)比

    iphone與iphone7plus的對(duì)比。
    發(fā)表于 03-07 17:25 ?1013次閱讀

    iphone8或?qū)⒒貧w設(shè)計(jì),以水滴形設(shè)計(jì)以致iphone

    著名的蘋(píng)果新聞網(wǎng)站AppleInsider今天爆料,稱iPhone 8將會(huì)采用“水滴狀設(shè)計(jì)”,作為iPhone誕生的10周年產(chǎn)品,致敬iPhone。
    發(fā)表于 03-23 16:50 ?519次閱讀

    推出已經(jīng)7年!蘋(píng)果iPad Pro和2017新iPad性能分別有多大?

    2010年4月3日,蘋(píng)果開(kāi)售iPad Pro,平板電腦走進(jìn)人們?nèi)粘I钪?,但iPad發(fā)行7年以來(lái)好景不常,可拆鍵盤(pán)筆電以及更大屏幕手機(jī)的競(jìng)爭(zhēng)之下,iPad和其他平板電腦銷量有點(diǎn)壓縮,經(jīng)過(guò)7年之后的新iPad,在性能上與
    發(fā)表于 04-07 14:21 ?1.4w次閱讀

    Pixel已下架 ,Pixel 2系列正式獨(dú)擔(dān)大旗

    Google Pixel 2 系列自去年 10 月推出以來(lái),雖然是一波三折,但整體評(píng)價(jià)都算是不錯(cuò),前輩 Pixel 似乎也是時(shí)候功成身退了吧。有人發(fā)現(xiàn)到 Google Store 官方網(wǎng)店上,
    的頭像 發(fā)表于 08-14 14:15 ?2101次閱讀

    蘋(píng)果將在2019年發(fā)布AirPods二

    近日,業(yè)界著名分析師郭明池表示,蘋(píng)果將在2019年發(fā)布AirPods二,這款產(chǎn)品在外觀設(shè)計(jì)上與AirPods基本一致,但在功能上會(huì)有提升。
    發(fā)表于 12-03 15:39 ?3755次閱讀

    網(wǎng)友曬未開(kāi)封iPod產(chǎn)品 價(jià)格已漲50倍

    對(duì)于那些酷愛(ài)收藏的玩家來(lái)說(shuō),蘋(píng)果的不少古老新產(chǎn)品價(jià)格都很貴,特別是全新未拆封的。
    的頭像 發(fā)表于 05-10 09:18 ?3348次閱讀

    Google Pixel手機(jī)停止安全更新支持

    谷歌Pixel和Pixel XL手機(jī)可能已經(jīng)達(dá)到了安全停止支持期限。谷歌今天發(fā)布了其Pixel設(shè)備的更新,其中包含11月份安全更新以及一些針對(duì)一般生活質(zhì)量更新。谷歌Pixel 2、3和4系列設(shè)備都可以接收OTA更新,但是Google Pixel
    的頭像 發(fā)表于 11-05 15:21 ?2476次閱讀

    前蘋(píng)果工程師iPhone生產(chǎn)線照片曝光

    蘋(píng)果推出iPhone是在2007年,當(dāng)時(shí)那款屏幕只有3.5英寸的手機(jī)在今天看來(lái)“平平無(wú)奇”,但卻真正打開(kāi)了智能手機(jī)時(shí)代的大門(mén)。據(jù)外媒報(bào)道,前蘋(píng)果工程師Bob Burrough日前放出了一張
    的頭像 發(fā)表于 12-28 11:05 ?1932次閱讀

    新一狀態(tài)監(jiān)控

    新一狀態(tài)監(jiān)控
    發(fā)表于 03-20 19:36 ?6次下載
    新一<b class='flag-5'>代</b><b class='flag-5'>狀態(tài)</b>監(jiān)控

    linux 中 ACPI 電源管理 G 狀態(tài)、S 狀態(tài)、D 狀態(tài)、C 狀態(tài)、P 狀態(tài)

    ACPI 高級(jí)電源管理ACPI 中定義了 G、D、S、C、P 這 5 個(gè)大的電力狀態(tài)。G 狀態(tài) Global system stateG 狀態(tài)表示的是用戶看到的整個(gè)系統(tǒng)的電力
    發(fā)表于 01-05 14:12 ?4次下載
    linux 中 ACPI 電源<b class='flag-5'>管理</b> G <b class='flag-5'>狀態(tài)</b>、S <b class='flag-5'>狀態(tài)</b>、D <b class='flag-5'>狀態(tài)</b>、C <b class='flag-5'>狀態(tài)</b>、P <b class='flag-5'>狀態(tài)</b>

    iPhone SE正式列為過(guò)時(shí)產(chǎn)品

    如果仍然持有iPhone SE的用戶需要維修服務(wù),可能需要提前咨詢蘋(píng)果網(wǎng)點(diǎn)或?qū)ふ业谌椒?wù)。
    的頭像 發(fā)表于 12-06 17:22 ?1219次閱讀

    Harmony 鴻蒙應(yīng)用級(jí)變量的狀態(tài)管理

    應(yīng)用級(jí)變量的狀態(tài)管理 在前面的章節(jié)中,已經(jīng)講述了如何管理頁(yè)面級(jí)變量的狀態(tài),本章將說(shuō)明如何管理應(yīng)用級(jí)變量的
    的頭像 發(fā)表于 01-24 21:30 ?355次閱讀
    Harmony 鴻蒙應(yīng)用級(jí)變量的<b class='flag-5'>狀態(tài)</b><b class='flag-5'>管理</b>