主题 : 触摸屏坐标转换 复制链接 | 浏览器收藏 | 打印
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
楼主  发表于: 2010-04-29 08:38

 触摸屏坐标转换

在Linux中,触摸屏的坐标是如何防止抖动的呢?另外我的触摸屏坐标是通过调用哪个函数执行与LCD屏的位置对应的呢?难道是通过校准,然后触摸屏坐标直接送到上层,而不需要像WinCE下有个坐标转换函数,并且有防抖处理。哪位能给予指点迷津啊?万分火急了。谢谢!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-04-29 10:33
在Linux中,触摸屏的坐标是如何防止抖动的呢?

一个常用的办法是驱动在一次触摸事件中取N个sample,然后做平均,将平均值作为这次事件产生的坐标


另外我的触摸屏坐标是通过调用哪个函数执行与LCD屏的位置对应的呢?难道是通过校准,然后触摸屏坐标直接送到上层,而不需要像WinCE下有个坐标转换函数,并且有防抖处理。哪位能给予指点迷津啊?万分火急了。谢谢!

对于S3C2440A这样Touchscreen controller + ADC的情况来说,一个合理的做法是,驱动送出的是AD转换的数值(0 ~ 1024, 10bit AD转换精度), 由userspace的触摸屏库(tslib)根据屏幕大小将其"转换"为适合屏幕大小的坐标值。在这中间,还需要校准程序的配合。
事实上,这就是mini2440默认的root_qtopia文件系统处理触摸屏设备的做法。
驱动 --> tslib --> qpe
关于tslib触摸屏校准原理,看这个帖子
http://www.aiothome.net/read.php?tid=2899&page=3#10147
[ 此帖被kasim在2010-04-29 10:41重新编辑 ]
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."