新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM7支持觸摸屏和實時操作系統(tǒng)的開發(fā)與應(yīng)用

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

作者: 時間:2010-09-25 來源:電子產(chǎn)品世界 收藏

  其中,ReadTouchXY()函數(shù)通過TOUCH_X_MeasureX(void)、TOUCH_X_MeasureY(void)讀取對應(yīng)坐標(biāo)的X、Y軸的電壓值,并送入主控程序進行坐標(biāo)轉(zhuǎn)化,得出當(dāng)前按壓的位置。

本文引用地址:http://m.butianyuan.cn/article/112971.htm

  int ReadTouchXY(unsigned char

  command)

  {

  //根據(jù)command參數(shù),進行X、Y向觸摸點選擇、去抖、位置的計算等

  return ack;//返回對應(yīng)位

  置值;

  }

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

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

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

  (1)時間函數(shù)

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

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

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

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

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

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

  接口模塊

  GUI_X_GetTaskID() //返回一個

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

  GUI_X_Lock() //給GUI上鎖

  GUI_X_UnLock() //解鎖GUI

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

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

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

  #dene SCR_XSIZE (640)

  //LCD水平尺寸

  #dene SCR_YSIZE (240)

  //LCD垂直尺寸

  #dene LCD_XSIZE (640)

  //LCD水平分辨率

  #dene LCD_YSIZE (240)

  //LCD垂直分辨率

  #define ARRAY_SIZE_COLOR (SCR_XSIZE/1*SCR_YSIZE)

  //LCD水平與垂直比例

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

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

  #dene SCR_XSIZE (640)

  //LCD水平尺寸

  #dene SCR_XSIZE (640)

  //LCD水平尺寸

c語言相關(guān)文章:c語言教程


模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理




關(guān)鍵詞: ARM 觸摸屏 μC/GUI 201009

評論


相關(guān)推薦

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

關(guān)閉