S3C2440触摸屏消除跳点及抖动
来源:互联网 发布:永远神剑2知乎 编辑:程序博客网 时间:2024/04/27 14:41
(部分转载)
其实2440触摸屏跳点问题在前一个多月已经得到解决,在我解决6410 触摸屏抖动的时候,偶然发现6410 不会任何跳点,只是抖动,后来比较2440 和6410 的触摸屏驱动写法,发现6410的比较惊异,算法避免了天外飞仙跳点。
ooo,下班了,明天再写吧。
——续@2010-11-19
我仔细比较6410 触摸屏驱动和2440 驱动,发现6410 的写法比较合理一些,最大区别是DdsiTouchPanelGetPoint函数写法,下面是2440 会跳点的写法。
从上面可以看出,这个DdsiTouchPanelGetPoint里面只进行了一步采样,尽管采样次数大于1次,但是也绝对不能消除天外飞仙跳点。因为这几次采样时间太靠近了,所以采样值都会很相近,即使是多次采样(我曾经试过20 次,没有多大改善。),求平均值,效果也会很微小。这个情况就说明,要想触摸屏不跳点,就要消除错误的采样点,那么怎么做呢?上面每隔10ms 连续采样多次无效,原因是每次采样间隔时间太短,数据太密集,接近,导致仍然获得的是误差数据。假设想想,如果扩大采样时间间隔去采样,这样获得的数据就不会太接近就可以判断了吧?看看6410 的触摸屏驱动,果然是每隔10ms 采样两组数据的,并且这两组数据进行比较分析,误差过大就说明采样点是无效的,这样就把天外飞仙的现象去掉了。下面也贴出改好的2440 代码,希望大家有帮助。
现在测试2440 的触摸屏,我们会惊奇的发现,真的没有天外飞仙跳点了,不过又引入了一个新的问题,触摸屏抖动!以前的那种写法采样时间间隔短,数据集中,是不会抖动的,现在数据差异大,触摸屏抖动的相当的厉害了!怎么办呢?这个时候增大采样次数求平均值会有一些效果,不过还是不能完全消除抖动的!现在就要用一个简单的算法了:就是采样八个点,然后从小到大排序之后,把最大和最小值去掉,因为这两个值通常都是在受力不均的时候产生的,不是真实的值,所以丢了,再求剩余几个点的平均值,这样就可以完美的消除触摸屏抖动了,下面贴出代码,希望大家也来改进一下。
(代码请看原帖)
----------------------------------------------------
转自 http://www.cnblogs.com/gooogleman/archive/2010/11/18/1881017.html
-----------------------------------------------------------------------------------
/* Comment:
LZ觉得,每隔10ms采样两组数据并比较其差异,因为在电阻屏上滑动,坐标值的变化应该是连续变化的,这种filter是Hysteresis迟滞作用,类似电感,阻碍过于快速的变化。
而将采样八个点的值进行排序,去掉最大最小值,这种filter类似于带通滤波器。
LZ试过,如果不进行filter过滤,任何一种平均算法都不能有效的消除跳点和抖动。因此,只有过滤掉那些误差较大的采样点,才可能消除跳点和抖动。
*/
- S3C2440触摸屏消除跳点及抖动
- 彻底解决2440触摸屏跳点以及抖动问题
- 彻底解决2440/2410触摸屏跳点以及抖动问题
- 彻底解决2440触摸屏跳点以及抖动问题
- 消除视频抖动
- s3c2440 LCD及触摸屏的学习笔记(1)
- s3c2440 LCD及触摸屏的学习笔记(2)
- s3c2440 LCD及触摸屏的学习笔记(1)
- s3c2440 LCD及触摸屏的学习笔记(1)
- s3c2440 LCD及触摸屏的学习笔记(2)
- s3c2440 LCD及触摸屏的学习笔记(1)
- 1-17 触摸屏原理及基于S3C2440的代码实现
- S3C2440裸奔触摸屏
- s3c2440 linux 触摸屏驱动
- S3C2440裸奔触摸屏
- S3C2440之触摸屏
- s3c2440触摸屏程序架构
- S3C2440 触摸屏应用
- 程序员考试成绩发布。
- Linux内核编译后地址空间的整理
- mongoDB入门介绍
- 校园∷朋友
- 内存故障小结
- S3C2440触摸屏消除跳点及抖动
- 内核页表的初始化
- 代码修改了运行结果却没有变化
- 重新复习汇编语言
- 一个支持多数据库自定义调试的SqlHelper
- Java类加载原理解析
- poj Jury Compromise
- List
- 新博客上线了,放下手里的代码,来写点