在ucGUI中整合触摸屏
2012-11-27
标签:

ucGUI本身支持键盘,鼠标,触摸屏等外设,并在源码级对其消息进行了响应,为使得触摸屏正常工作,用户除实现触摸屏底层驱动以外,还必须对其相应配置文件的修改和添加一些相关函数。

GUIConf.h文件中将宏GUI_SUPPORT_TOUCH定义为1。

GUITouchConf.h文件包括触摸屏矫正时使用的一些宏定义,我们需要根据目标板的具体配置设置具体的值,试验板2410,其中触摸板和液晶屏都是8.4’’,修改后相应的值如下:

#define GUI_TOUCH_AD_LEFT60#define GUI_TOUCH_AD_RIGHT970

#define GUI_TOUCH_AD_TOP50#define GUI_TOUCH_AD_BOTTOM 980

#define GUI_TOUCH_SWAP_XY1#define GUI_TOUCH_MIRROR_X1

#define GUI_TOUCH_MIRROR_Y1

理论上来说,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) {}

intGUI_TOUCH_X_MeasureX(void) {}intGUI_TOUCH_X_MeasureY(void){}

其中前面两个函数可以不予理会,只需在后面两个函数中返回测量值即可。这里测量值来源于触摸屏驱动返回的x, y值。

可能会用到的工具/仪表
相关文章
推荐文章
热门文章
章节目录
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号