歡迎您光臨本站 登入註冊首頁

在ucGUI中整合觸摸屏

admin @ 2014-03-25 , reply:0

概述

      ucGUI本身支持鍵盤,滑鼠,觸摸屏等外設,並在源碼級對其消息進行了響應,為使得觸摸屏正常工作,用戶除實現觸摸屏底層驅動以外,還……
       ucGUI本身支持鍵盤,滑鼠,觸摸屏等外設,並在源碼級對其消息進行了響應,為使得觸摸屏正常工作,用戶除實現觸摸屏底層驅動以外,還必須對其相應配置文件的修改和添加一些相關函數。
GUIConf.h文件中將宏GUI_SUPPORT_TOUCH定義為1。
GUITouchConf.h文件包括觸摸屏矯正時使用的一些宏定義,我們需要根據目標板的具體配置設置具體的值,試驗板2410,其中觸摸板和液晶屏都是8.4’’,修改後相應的值如下:

#define GUI_TOUCH_AD_LEFT   60      #define GUI_TOUCH_AD_RIGHT  970
#define GUI_TOUCH_AD_TOP    50      #define GUI_TOUCH_AD_BOTTOM 980  
#define GUI_TOUCH_SWAP_XY   1      #define GUI_TOUCH_MIRROR_X   1
#define GUI_TOUCH_MIRROR_Y  1

        理論上來說,GUI_TOUCH_AD_RIGHT 與GUI_TOUCH_AD_LEFT的取值或者為0,或者為1024(這是S3C2410內置的AD決定的),兩者只取其一,GUI_TOUC_AD_BOTTOM與GUI_TOUCH_AD_TOP的取值同樣遵守上述規定,但是在實際操作中往往不會如此設置,均會根據具體情況靈活處理,進行校準操作,諸如windowsCE等其它嵌入式系統中使用觸摸屏時同樣也需要進行觸摸屏校準操作,觸摸屏的校正是在觸摸屏底層驅動的基礎上實現的,通過點擊觸摸板上邊界點位置,經由串口列印的坐標值判斷上述宏的取值。我們只取左上角和右下角兩點坐標作為校正點,經過多次試驗左上角坐標大約為(50,60), 右下角位置相應的值為(970,980), 故而確定相應宏的取值。餘下幾個宏試均屬於開關量,取值視相應情況而定。
在uCGUI框架基礎上再增加一個文件,GUI_X_Touch.c,該文件中增加四個函數:
void GUI_TOUCH_X_ActivateX(void){}   void GUI_TOUCH_X_ActivateY(void) {}
int  GUI_TOUCH_X_MeasureX(void) {}   int  GUI_TOUCH_X_MeasureY(void){}
其中前面兩個函數可以不予理會,只需在後面兩個函數中返回測量值即可。這裡測量值來源於觸摸屏驅動返回的x, y值。

[admin via 研發互助社區 ] 在ucGUI中整合觸摸屏已經有1713次圍觀

http://cocdig.com/docs/show-post-42558.html