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值。
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值。