性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

程序小白
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
【第一章】有限狀態(tài)機(jī)理論速成筆記
【第二章】HSM層次式狀態(tài)機(jī)理論(進(jìn)階版)
【第三章】有限狀態(tài)機(jī)(FSM)之炸彈項(xiàng)目(實(shí)戰(zhàn)1)
【第四章】有限狀態(tài)機(jī)(FSM)之炸彈項(xiàng)目(實(shí)戰(zhàn)2)
【第五章】有限狀態(tài)機(jī)(FSM)之炸彈項(xiàng)目(實(shí)戰(zhàn)3)
【第六章】層次式狀態(tài)機(jī)HSM = 有限狀態(tài)機(jī)FSM + 面向?qū)ο?
作者動(dòng)態(tài) 更多
基于stm32采用PWM驅(qū)動(dòng)伺服控制器學(xué)習(xí)筆記
05-13 15:25
基于STM32驅(qū)動(dòng)TM1638學(xué)習(xí)筆記——軟件篇
04-19 12:42
基于TM1638驅(qū)動(dòng)8位數(shù)碼管設(shè)計(jì)分享
02-24 11:26
RT-Thread驅(qū)動(dòng)之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅(qū)動(dòng)之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

【第一章】有限狀態(tài)機(jī)理論速成筆記

      嚴(yán)格意義上來(lái)講,狀態(tài)機(jī)理論應(yīng)該屬于控制理論的范疇,他其實(shí)不光在軟件領(lǐng)域發(fā)光發(fā)熱,實(shí)際上他對(duì)于硬件設(shè)計(jì)更加的重要,多年前我曾讀過分享過那些當(dāng)年看不懂的文章,依舊給他人很大的幫助。

   

      有興趣的童鞋可以去讀一下,不論你從事軟件還是硬件,都值得一讀,接下來(lái)進(jìn)入正題,我們來(lái)速成狀態(tài)機(jī),舉個(gè)例子:

      早期的狀態(tài)機(jī)控制理論(不完整)

      地震啦~?。。。?我:。。。跑~!?。。ㄟ@就是狀態(tài)機(jī)的早期的事件動(dòng)作范型)(缺點(diǎn):我是誰(shuí) ,我在哪 ,我為什么要跑?)

      完整的狀態(tài)機(jī)模型(完整語(yǔ)義)

      地震啦~?。?!

      版本一,我:我居然在大樓里~! 跑~?。?!

      版本二,我:我在大草原上~!沒事兒~!?。?/span>

這就是完整的狀態(tài)機(jī)模型(事件-狀態(tài)-動(dòng)作范型),看到這里你也就學(xué)會(huì)了狀態(tài)機(jī),簡(jiǎn)不簡(jiǎn)單~!是的,狀態(tài)機(jī)的初衷就是為了不制造麻煩~!

      狀態(tài)機(jī)進(jìn)階(任何理論都會(huì)因?qū)嵺`慢慢改進(jìn)豐富和進(jìn)階):

普通版狀態(tài)機(jī):

      媽媽要出門買雞蛋了,你在家先寫十分鐘的作業(yè),然后就可以看會(huì)兒動(dòng)畫片了,    這時(shí)候你躁動(dòng)了,十分鐘等于六百秒,于是開始1...2...3...600....終于可以看電視了,你再數(shù)數(shù)之前,要先想一下之前數(shù)的是幾(歷史就是狀態(tài)),然后才知道下一個(gè)是幾。要完整這件事你要數(shù)600個(gè)數(shù),轉(zhuǎn)換600中狀態(tài),什么時(shí)候轉(zhuǎn)換呢,你會(huì)盯著時(shí)鐘的秒表,他動(dòng)一下,你加一(事件)。結(jié)果媽媽回來(lái),發(fā)現(xiàn)你居然沒有寫作業(yè),于是不光挨了罵,動(dòng)畫片也看不成了。

擴(kuò)展?fàn)顟B(tài)機(jī)(進(jìn)階版):

      媽媽要出門買雞蛋了,你在家先寫十分鐘的作業(yè),然后就可以看會(huì)兒動(dòng)畫片了,   你拿過鬧鐘,定了一個(gè)十分鐘的鬧鐘,然后繼續(xù)寫作業(yè)(狀態(tài)1),十分鐘后,鬧鐘響了(監(jiān)護(hù)條件),時(shí)間到啦,你放下作業(yè),打開電視,開始看動(dòng)畫片(狀態(tài)2),不一會(huì)兒媽媽回來(lái)了,檢查了你的作業(yè),發(fā)現(xiàn)你很守信用,于是不光讓你多看一會(huì)兒電視,而且還獎(jiǎng)勵(lì)了一根棒棒糖。

   總結(jié):并不是所有的狀態(tài)都要被構(gòu)造成狀態(tài)機(jī),如果有很多狀態(tài)其實(shí)都是一個(gè)簡(jiǎn)單的變量維護(hù),那么可以建立一個(gè)狀態(tài)機(jī),再其內(nèi)部維護(hù)這個(gè)變量,創(chuàng)建一個(gè)監(jiān)護(hù)條件,只有等監(jiān)護(hù)條件滿足時(shí),才跳轉(zhuǎn)到其它狀態(tài)機(jī)。

   注意:在單片機(jī)軟件中構(gòu)造一個(gè)狀態(tài)機(jī)是需要一定內(nèi)存資源開銷的,想想我們那可憐的RAM,一個(gè)項(xiàng)目到底要分解成多少個(gè)狀態(tài)機(jī)不光是技術(shù)問題,更是藝術(shù)問題。

狀態(tài)機(jī)中最重要的幾個(gè)概念:事件 狀態(tài) 動(dòng)作  (擴(kuò)展?fàn)顟B(tài)機(jī)還有監(jiān)護(hù)條件)

一個(gè)簡(jiǎn)單的狀態(tài)機(jī)可以如下描述:

狀態(tài)機(jī)還有個(gè)很重要的概念要RTC(Run-to-Completion):大體意思是運(yùn)行到完成,這個(gè)過程是不可以打斷的,因?yàn)槿绻淮驍嗔耍敲茨憔突謴?fù)現(xiàn)場(chǎng),問題就復(fù)雜了,舉個(gè)例子,鬧鐘響了(事件發(fā)生),我(睡眠狀態(tài))到(起床狀態(tài))需要完成的RTC如下:

伸懶腰   穿衣 穿鞋  洗漱結(jié)束。假如你在穿衣的過程中,突然接到女神的求助電話,這時(shí)候可能直接從床上跳起來(lái),寫也顧不上穿就飛奔而去,這就打亂了我們?cè)镜臓顟B(tài)機(jī)執(zhí)行上下文,導(dǎo)致你鞋沒穿 牙沒刷出門了,理論上這是不允許的,盡管現(xiàn)實(shí)中是你想要的。

到這里基本就完成了傳統(tǒng)意義上的FSM(有限狀態(tài)機(jī))的學(xué)習(xí),理論的東西,理解就好了,詳細(xì)看書可以要花個(gè)半天,當(dāng)然更專業(yè),如下:

      

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 8
收藏 11
關(guān)注 151
成為作者 賺取收益
全部留言
0/200
  • 星球居民-jwDCpCfn 2020-09-03 09:46
    老師好,請(qǐng)問最后一張圖出自那本書?
    回復(fù) 1條回復(fù)