新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于uc/os-ii的嵌入式GUI研究與應用

        基于uc/os-ii的嵌入式GUI研究與應用

        作者: 時間:2012-03-21 來源:網絡 收藏

        1 引言

        人機界面是嵌入式系統的重要組成部分,當前比較流行的GUI主要有:Nano-X,microwindows,

        minigui,QT/Embedded,OpenGUI等,普遍采用客戶/服務器結構,多線程概念,主要用于嵌入式Linux系統中。 /是一個簡單、高效的嵌入式實時操作系統內核,憑借其源代碼開放,系統內核可剪裁等特點,被廣泛應用到各種嵌入式系統中。但是,/os- ii只是一個實時多任務內核,不具有現代操作系統的線程,客戶/服務器機制,上述GUI不能方便的運行在/上。

        uC/GUI是一個源代碼開放的GUI,可以實現Windows風格的圖形界面。微型是其最大的特點,占用很小的系統資源,易于移植,功能強大[1];可以運行在uc/操作系統中;采用了100%的ANSI C編寫,可以應用于任何和CPU中;加上其源代碼開放的特點,使用起來非常靈活。

        2 系統組成

        系統是基于三星的S3C44B0X, 1MB的Flash:SST39VF160,8MB的SDRAM:HY57V641620;使用了CASIO公司320×240象素STN偽彩色,輸入使用4線電阻式,操作系統為uc/os-ii ,編譯器使用ARM公司ADS1.2;根據實際需要設計了兩路A/D轉換電路、一路D/A轉換電路。系統的功能框圖如圖(1)所示:

        圖(1)系統框圖

        3 uC/GUI的移植

        在進行移植之前首先要了解uC/GUI的組織結構。uC/GUI是以ANSI C源碼包的形式提供的,由Config和GUI兩個目錄組成,如表(1)所示:

        Config

        包含了對uC/GUI進行配置的文件

        GUI/ConvertMono

        使用黑白顯示設備時,所要使用的灰度轉換函數

        GUI/ConvertColor

        使用彩色顯示設備時,所要使用的彩色轉換函數

        GUI/Core

        uC/GUI核心代碼

        GUI/Font

        uC/GUI與字體相關的代碼文件

        GUI/MemDev

        內存設備支持文件代碼

        GUI/Driver

        LCD驅動文件代碼

        GUI/Touch

        支持輸入的文件代碼

        GUI/Widget

        控件代碼,包括編輯框、列表框、按鈕、選擇框等

        GUI/WM

        實現窗口管理的文件代碼

        表(1)uC/GUI目錄結構

        Config目錄下包含了LCDConf.h,GUITouchConf.h和GUIConf.h三個文件用來對具體使用的LCD驅動程序、驅動程序和uC/GUI進行配置。

        uC/GUI的移植過程主要是對Config目錄下三個文件的修改,以及進行觸摸屏和LCD驅動程序的編寫[2]。

        3.1觸摸屏的移植

        在使用觸摸屏之前必須將Config目錄下GUIConf.h中的GUI_SUPPORT_TOUCH設置為 1,由于項目中使用了操作系統所以同時將GUI_OS也設置為 1。觸摸屏觸點位置的獲得是通過調用GUI/core/目錄中GUI_TOUCH_DriverAnalog.c文件中的 GUI_TOUCH_Exec( )函數來實現的,對該函數進行修改后的偽代碼如下:

        void GUI_TOUCH_Exec(void)

        {

        讀取觸點在觸摸屏上(x, y)點實際坐標值;

        進行實際坐標值到邏輯坐標的轉換;

        調用GUI_TOUCH_StoreState(x, y)保存邏輯坐標值;

        }

        系統為了實時得到觸點坐標,就要不斷調用GUI_TOUCH_Exec( )函數。因此需要在uc/os-ii操作系統中建立一個單獨的任務對該函數進行調用,這樣可以保證觸摸屏任務的實時響應。實現方式如下:

        void Task_Touch(void*id){ //建立觸摸屏任務

        while(1){ GUI_TOUCH_Exec(); //調用此函數

        OSTimeDly(1); } //延時一個時鐘節拍

        }

        LCD顯示屏相關文章:lcd顯示屏原理


        lcd相關文章:lcd原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 托克逊县| 赤峰市| 手游| 浑源县| 娱乐| 九龙城区| 固安县| 灵武市| 博爱县| 兴义市| 内丘县| 瓦房店市| 福建省| 南漳县| 贡嘎县| 霍林郭勒市| 晋宁县| 墨脱县| 廉江市| 建阳市| 扬中市| 黔南| 康乐县| 武冈市| 鹰潭市| 廊坊市| 渝北区| 吉林省| 黎川县| 通道| 三明市| 且末县| 平潭县| 柞水县| 大安市| 成都市| 仲巴县| 特克斯县| 衢州市| 新宁县| 山丹县|