<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于ARM7支持觸摸屏和實(shí)時(shí)操作系統(tǒng)的開(kāi)發(fā)與應(yīng)用

          基于ARM7支持觸摸屏和實(shí)時(shí)操作系統(tǒng)的開(kāi)發(fā)與應(yīng)用

          作者:李廣榮 宗文波 韓建超 楊丹 于海濱 劉锏澤 北京衛(wèi)星制造廠 時(shí)間:2011-02-22 來(lái)源:電子產(chǎn)品世界 收藏

            mC/GUI及與操作系統(tǒng)的接口

          本文引用地址:http://www.ex-cimer.com/article/117094.htm

            mC/GUI是運(yùn)行于操作系統(tǒng)之上的程序,它既需要與操作系統(tǒng)協(xié)調(diào),又需要與各種輸入/輸出設(shè)備協(xié)調(diào),即通過(guò)輸入設(shè)備接收用戶請(qǐng)求,通過(guò)輸出設(shè)備發(fā)送微處理器的處理結(jié)果。因此,mC/GUI的接口主要包括兩個(gè):與操作系統(tǒng)的接口和與輸入/輸出設(shè)備的接口,這也正是在移植mC/GUI的過(guò)程中所要解決的關(guān)鍵問(wèn)題。mC/GUI與mC/OS-II結(jié)合應(yīng)用時(shí)通過(guò)上鎖和解鎖來(lái)解決資源互斥的問(wèn)題,其過(guò)程是通過(guò)在關(guān)鍵區(qū)域入口設(shè)置GUI_X_Lock()以獲得專一訪問(wèn)權(quán),用完后在出口處設(shè)置GUI_X_Unlock()讓出資源,達(dá)到多個(gè)GUI任務(wù)對(duì)同一數(shù)據(jù)在關(guān)鍵區(qū)域內(nèi)訪問(wèn)的互斥。

            在mC/GUI移植到mC/OS-II的過(guò)程中,需要利用操作系統(tǒng)的資源來(lái)實(shí)現(xiàn)GUI所需要的功能,即利用μC/OSII提供的時(shí)間管理、任務(wù)管理和資源共享機(jī)制來(lái)實(shí)現(xiàn)μC/GUI中相應(yīng)的功能,具體要實(shí)現(xiàn)以下函數(shù)的重新定義:

            (1)時(shí)間函數(shù)

            GUI_X_Delay() //延遲指定的時(shí)間段后返回

            GUI_X_ExecIdle() //視窗管理器的非堵塞函數(shù)調(diào)用

            GUI_X_GetTime() //返回當(dāng)前

            系統(tǒng)的時(shí)間,以毫秒為單位

            (2)內(nèi)核接口函數(shù)

            GUI_X_InitOS() //初始化內(nèi)核

            接口模塊

            GUI_X_GetTaskID() //返回一個(gè)

            當(dāng)前任務(wù)/線程唯一的32位標(biāo)識(shí)符

            GUI_X_Lock() //給GUI上鎖

            GUI_X_UnLock() //解鎖GUI

            GUI_X_Log() //返回調(diào)試信息

            (3)LCD底層驅(qū)動(dòng)程序

            要使mC/GUI能夠在目標(biāo)系統(tǒng)上運(yùn)行,首先要對(duì)mC/GUI進(jìn)行配置和修改,也就是移植。移植工作主要是指對(duì)配置頭文件中的宏定義根據(jù)具體情況進(jìn)行修改,包括LCD宏和LCD控制器宏。使用mC/GUI庫(kù)函數(shù)時(shí),必須在主函數(shù)前調(diào)用頭文件“gui.h”,并根據(jù)需要做適當(dāng)?shù)男薷摹V档米⒁獾氖?,在此文件的預(yù)定義語(yǔ)句中,必須將GUI_SUPPORT_TOUCH設(shè)為1。如果需要在屏幕上顯示中文,除了添加中文字庫(kù)到工程中外,還需要將GULDEFAULT_FONT設(shè)為&GULFontHZ12,HZ12代表使用的中文字體。如果需要在mC/GUI的控件中使用中文,也需要在控件的預(yù)定義語(yǔ)句中作相應(yīng)的修改。由于芯片X內(nèi)部集成了LCD控制器,LCD底層驅(qū)動(dòng)程序主要是設(shè)計(jì)與LCD屏相關(guān)的參數(shù)以及其特殊的控制寄存器,主要包括以下的參數(shù)和寄存器:

            #define SCR_XSIZE (640)

            //LCD水平尺寸

            #define SCR_YSIZE (240)

            //LCD垂直尺寸

            #define LCD_XSIZE (640)

            //LCD水平分辨率

            #define LCD_YSIZE (240)

            //LCD垂直分辨率

            #define ARRAY_SIZE_COLOR (SCR_XSIZE/1*SCR_YSIZE)

            //LCD水平與垂直比例

            #define HOZVAL_COLOR (LCD_XSIZE*3/8-1)

            //LCD水平字節(jié)尺寸

            #define SCR_XSIZE (640)

            //LCD水平尺寸

            #define SCR_XSIZE (640)

            //LCD水平尺寸

            寄存器的定義根據(jù)不同的微處理器和LCD顏色、尺寸等來(lái)定義,這里以X說(shuō)明:

            rLCDCON1=(0)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<<12);

            rLCDCON2=(LINEVAL)

            |(HOZVAL_COLOR<<10)|(10<<21);

            rLCDSADDR1= (0x3<<27)|(((U32)frameBuffer>>22)<<21)|M5D((U32)frameBuffer>>1);

            rLCDSADDR3= (LCD_XSIZE/2)|(((SCR_XSIZE-LCD_XSIZE)/2)<<9);



          關(guān)鍵詞: 觸摸屏 ARM7 S3C44B0

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();