触摸屏调试经验谈
来源:互联网 发布:淘宝哪家衣服好看时尚 编辑:程序博客网 时间:2024/05/27 01:06
//========================================================================
//TITLE:
// 触摸屏调试经验谈
//AUTHOR:
// norains
//DATE:
// Thursday 19-March-2009
//Environment:
// WINDOWS CE 5.0
//========================================================================
1.校准之后依然无法正确使用
这种情况最容易发生驱动和硬件上的错位,很可能是因为驱动对X+,X-(或Y+,Y-)的定义与硬件不一致造成。这种情况是无法通过wince的触摸屏校准程序来转换坐标的。唯一的方法只能在驱动层对坐标进行转换,例如:
#ifdef REVERSE_X
*x = MAX_X - *x + MIN_X;
#endif
#ifdef REVERSE_Y
*y = MAX_Y - *y + MIN_Y;
#endif
2.点击时会无规律飘忽不定
该问题一般因为电压不稳,可以先查一下ADC芯片在工作时,电压是否处于一种稳定的状态。
3.点击时有规律的漂移
这点和第二点不同,该点主要是出在软件方面。最直观的例子是点击explorer的图标,它会呈一定规律的移动。这种情况一般发生于触摸屏大小改变,比如从4.3'变成7'。问题根源是驱动定义的数值和实际的触摸屏采样值不一致造成。比如,之前4.3的MAX_X是4300,可能更换为7'后就变成了4600。
变更触摸屏后的数值,需要实际去测量。最简单的方式,就是通过代码获取数值的范围,然后通过串口打印出来,再在所获得的数据基础上进行微调。
例如:
int getrawdata(int * x, int * y)
{
...
static unsigned int iMaxX = 0,iMinX = MAX_X,iMinY = MAX_X,iMaxY = 0;
...
if(bValidate != FALSE)
{
iMaxX = iMaxX > r_x[ValidNum] ? iMaxX : r_x[ValidNum];
iMaxY = iMaxY > r_y[ValidNum] ? iMaxY : r_y[ValidNum];
iMinX = iMinX < r_x[ValidNum] ? iMinX : r_x[ValidNum];
iMinY = iMinY < r_y[ValidNum] ? iMinY : r_y[ValidNum];
RETAILMSG(TRUE,(TEXT("iMinX:%d,iMaxX:%d,iMinY:%d,iMaxY:%d/r/n"),iMinX,iMaxX,iMinY,iMaxY));
}
...
}
- 触摸屏调试经验谈
- 触摸屏调试经验谈
- 触摸屏调试bug
- 触摸屏移植调试总结
- 触摸屏驱动移植调试
- 触摸屏调试终结
- 关于触摸屏调试
- FTS3AD54触摸屏调试总结
- I2C_触摸屏调试记录
- Android触摸屏配置调试
- 驱动调试常见问题_触摸屏
- adc与触摸屏调试记录
- 驱动调试常见问题_触摸屏
- 触摸屏驱动调试常见问题总结
- 触摸屏驱动调试常见问题总结
- mini2440 触摸屏调试程序记录
- 驱动调试常见问题_触摸屏
- CTP触摸屏调试之--getevent
- 票据简单应用
- 对路径“C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/aa/……”的访问被拒绝
- 下午调试的几个关于weblogic连接池的问题
- ASP程序在2000下一切正常,但转到2003服务器上,乱码
- 挂在树上的茶壶
- 触摸屏调试经验谈
- 用MFC实现串口编程
- 09读书进展2
- lvm 常用
- Linux环境下的socker编程
- PIL(Python Image Library)生成验证码
- command line 技巧
- JAVA 生成树状图及饼图
- .Net C#常见面试题