在ucGUI中整合触摸屏

2007-12-25 10:14:45

字体变小 字体变大
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值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值