|
我现在用DE2开发板和TRDB-LTM做显示,并移植了ucgui,可以正常显示,遇到一个触摸的问题,一直解决不了。
首先跟触摸有关的配置是对的,看看其他地方我写的关于触摸的代码:
1、使用ucos系统,创建了一个单独的进程调用GUI_TOUCH_Exec();
void task_touch(void* pdata)
{
GUI_TOUCH_Exec();
}
2、使用TRDB-LTM例子中的关于AD转换的verilog程序,将转换后的XY坐标储存在寄存器中。
3、在GUI_X_Touch.c文件中
int GUI_TOUCH_X_MeasureX(void)
{
U32 coor;
static U8 j;
coor = IORD(LTM_CTRL_0_BASE,1);//读取储存器中的XY坐标。
if( !(coor & 0x80000000))
{
j=0;
return (coor & 0x0fff);
}
return 0;
}
int GUI_TOUCH_X_MeasureY(void)
{
U32 coor;
static U8 j;
coor = IORD(LTM_CTRL_0_BASE,1);
if( !(coor & 0x80000000))
{
j=0;
return (0xfff - (((coor>>16) & 0x0fff)));
}
return 0;
}
4、编写ucgui代码,使用一个数字健盘和文本框。
遇到的问题是:
每一次触摸“1”,文本框输入一个“1”,第二次触摸“2”,文本框会先输入1,再输入2;第三次如果触摸3,文本框会输入2,再输入3;依此类推。这样如果我想输入123,最后文本框输入的却是11223,不知道是为什么。有没有大牛做过ucgui触摸的,有什么解决方法,感激不尽! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|