關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于μC/OS-II的顯示控制系統開發

        基于μC/OS-II的顯示控制系統開發

        作者: 時間:2009-12-28 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/163375.htm

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


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

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 夏津县| 阜平县| 东莞市| 张家界市| 黑水县| 丰镇市| 遵化市| 九龙城区| 屏山县| 治多县| 阿城市| 溆浦县| 岳池县| 台中县| 岗巴县| 乐山市| 德阳市| 鱼台县| 林甸县| 启东市| 阿巴嘎旗| 安新县| 南部县| 绥滨县| 乳源| 长葛市| 吴忠市| 永丰县| 西城区| 丹江口市| 西乌| 盐边县| 新源县| 新野县| 开江县| 甘肃省| 彩票| 遵化市| 新巴尔虎左旗| 临武县| 鹿邑县|