<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于μC/OS-II的顯示控制系統開(kāi)發(fā)

基于μC/OS-II的顯示控制系統開(kāi)發(fā)

作者: 時(shí)間:2009-12-28 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/163375.htm

3 LCD多級菜單
對于多級菜單的編寫(xiě),控制關(guān)系比較復雜,特別是對于不同的界面,人機交互的內容一般都不相同。所以在操作系統實(shí)現時(shí),一般把每一級菜單的實(shí)現都作為一個(gè)任務(wù)分別設計。這樣思路清晰,不容易出現問(wèn)題,而且方便刪減和增加菜單項,也便于程序的維護和更新。主菜單任務(wù)循環(huán)體內程序如下:


程序說(shuō)明如下:
①在任務(wù)開(kāi)始時(shí)判斷系統模式SystemMode是否為主菜單模式SysMode_MainMenu。如果不是,那么就需要把主菜單任務(wù)掛起,直到從其他任務(wù)返回。
②等待按鍵信號量OSKeySem,根據用戶(hù)的按鍵執行相應的操作,RfreshTime是菜單的刷新時(shí)間。信號量等待函數在RfreshTime時(shí)間內等待,如果等待時(shí)間到了按鍵還沒(méi)有操作,那么它繼續執行下面的程序,err變量會(huì )返回錯誤的數值。
③如果②中的err返回沒(méi)有錯誤,說(shuō)明在刷新時(shí)間內發(fā)生了按鍵中斷,那么進(jìn)入按鍵的操作處理程序。
④根據鍵值變量KeyNumber進(jìn)行相應的操作,例如確定按鍵的處理、返回按鍵的處理等。
⑤假如是確定鍵KEY_OK按下,那么首先把系統子菜單的編號SubMenuNumber賦給SystemMode變量,并進(jìn)行相應的初始化操作。
⑥例如是XXXX子菜單,那么在初始化完成后發(fā)送信號量OSSemPost(OSDisXXXXSem)。其中,OSDisXXXXSem是子菜單XXXX的信號量。
⑦目的是調用主菜單顯示函數。之所以再次進(jìn)行判斷,是因為在⑥中發(fā)送信號量要進(jìn)行系統調度。如果子系統任務(wù)優(yōu)先級比主菜單高,主菜單就會(huì )被掛起而去執行子菜單,在子菜單執行間隙會(huì )重新調度回來(lái)進(jìn)行主菜單顯示,那么就造成顯示錯誤。
子菜單顯示的任務(wù)流程和主菜單類(lèi)似。在按返回鍵時(shí)發(fā)送啟動(dòng)主菜單的信號量OSSemPost(OSDisMain-MenuSem),系統就會(huì )重新返回到主菜單。

結 語(yǔ)
本文對μC/操作系統下的中斷按鍵消抖處理及LCD多級菜單顯示方法進(jìn)行了研究,并提出了一種簡(jiǎn)單、可靠性高、維護方便的實(shí)現方案。該方法已經(jīng)應用于某產(chǎn)品的設計中,效果較好,運行穩定可靠。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>