ARM7嵌入式系統在車(chē)輛調度中的應用范疇
基于狀態(tài)機的程序執行過(guò)程是這樣的:在任何時(shí)候都存在一個(gè)或者多個(gè)狀態(tài)機活動(dòng)的狀態(tài)。如果一個(gè)狀態(tài)是活動(dòng)的,那么離開(kāi)這個(gè)狀態(tài)的轉換可能會(huì )激發(fā),引起一個(gè)事件的執行,并使得另一個(gè)狀態(tài)或位于初始狀態(tài)位置的狀態(tài)激活(下一個(gè)狀態(tài)處于初始狀態(tài))。
狀態(tài)機它是說(shuō)明狀態(tài)機的對象在對象自己的生命期中事件的所經(jīng)歷的狀態(tài)序列以及它們對那些事件的響應??梢赃@樣理解狀態(tài)機狀態(tài)機是對象的狀態(tài)在事件的作用下從一個(gè)狀態(tài)轉移到另一個(gè)狀態(tài)。
狀態(tài)機中的幾個(gè)基本概念:
1.狀態(tài)(state):是指在對象的生命期中的一個(gè)條件或狀況,在此期間對象將滿(mǎn)足某些條件、執行某些活動(dòng)或等待某些事件。
2.事件(event)是對一個(gè)在時(shí)間和空間上占有一定位置的有意義的事情的說(shuō)明。在狀態(tài)機中一個(gè)事件的產(chǎn)生可以引起一次狀態(tài)轉換。
3.轉換(transition)是兩個(gè)狀態(tài)之間的一種關(guān)系,它指明對象在第一個(gè)狀態(tài)中執行的一定的動(dòng)作,并當特定事件或特定條件滿(mǎn)足時(shí)進(jìn)入第二個(gè)狀態(tài)。
在嵌入式系統的程序設計中,應該注意的另一個(gè)問(wèn)題是函數的可重入問(wèn)題, 可重入函數可以被遞歸調用,可以同時(shí)被兩個(gè)或多個(gè)進(jìn)程調用,這就要求在編譯的時(shí)候要為可重入函數提供一個(gè)模擬堆棧區。
圖二是設計中采用狀態(tài)機這種設計方法設計的系統程序中LCD顯示部份。下面是對圖二的解釋。
其中菜單1是顯示歡迎界面(就是上面提到的狀態(tài));菜單2是發(fā)送短消息;菜單3是記錄發(fā)送短消息內容的;菜單4是用來(lái)讀取接收到的短消息。具體的狀態(tài)轉移過(guò)程是這樣的,當顯示處于歡迎界面的時(shí)候,在這個(gè)狀態(tài)下,如向下的按鍵被按下(這就是一個(gè)事件)或發(fā)送短消息的鍵被按下,則系統狀態(tài)轉移到菜單2(發(fā)生了一次狀態(tài)轉移,下面和這是類(lèi)似的,故相應的分析省略了。);在這個(gè)狀態(tài)下,當向下按鍵被按下或系統要輸入發(fā)送短消息的內容時(shí)候,系統狀態(tài)從菜單2進(jìn)入菜單3;在這個(gè)狀態(tài)下,當向下的鍵盤(pán)被按下,系統的狀態(tài)轉移到菜單4;讀取短消息結束時(shí),系統狀態(tài)返回到歡迎界面。實(shí)際的系統還有返回按鍵等,這里只是用這個(gè)圖簡(jiǎn)單說(shuō)明采用狀態(tài)機的程序設計方法。
LCD顯示屏相關(guān)文章:lcd顯示屏原理
lcd相關(guān)文章:lcd原理
評論