动态调整触摸屏的灵敏度
来源:互联网 发布:时光与禅淘宝 编辑:程序博客网 时间:2024/04/30 02:08
最近在调试DM365 7寸屏,应用组反映回来:开始按下和最后抬起时,跳笔严重,丢失频繁,抖动异常,等的很不灵敏现象。
一般的嵌入式处理器中会有几个通道的AD,通常有四个通道用于连接触摸屏的XP、XM、YP和YM。如果MCU 没有Touch Screen Interface,可以选择如TSC2003一类的触摸屏控制器芯片。MCU可通过IIC总线与其通讯,以得到相应的触摸屏AD采样值。目前正在调试的TCC8900芯片内部集成了触摸屏控制器,原厂的BSP中也提供了相应的驱动,实际测试时发现,该驱动在4.3寸屏上工作得挺好,但在某些7寸屏上经常会出现跳笔,尤其是在开始按下和最后抬起时,跳笔非常严重。在快速手写时也有跳笔的情况,并且导致笔迹非常不圆滑。在触摸驱动中使用多次采样、去头掐尾求平均等简单滤波算法,问题仍然存在。经分析,问题的根源在于轻点触摸屏时采样值严重不准,所以即使采用滤波算法也无济于事了。解决问题要从根本出发,在上报数据时须严进宽出,压力较小的采样直接PASS,这样可以很好的去除一些抖动和跳笔。
参考TSC2003获取触摸压力的方法修改触摸驱动,单独获取XP、YP等值,通过计算得到按下触摸屏时的电阻值。该值与点击触摸屏的位置无关,只与点击触摸屏压力大小有关,压力越大,该值越小。在实际使用时规定一个参考值,当该值小于该参考值时才认为是可靠按下,将采样得到的坐标值上报,否则直接扔掉。由于触摸屏硬件的差别,不同触摸屏的灵敏度可能不一样,可以通过应用程序修改驱动中的参考值,从而实现动态调整触摸屏灵敏度。修改后实际测试发现,效果比原来要好一点。
按下四线电阻式触摸屏,采样时的等效电路图如下所示。
XPOS=V*R2/(R1+R2) (式1)
Z1POS=V*R2/(R3+Rt+R2) (式2)
Z2POS=V*(Rt+R2)/(R3+Rt+R2) (式3)
由式2和3可得,Rt=(Z2/Z1-1)*R2 (式4)
由式1可得R2=XPOS*(R1+R2)/V,即R2=XPOS*(RXplate)/V (式5)
将式5和式4可得,
对于同一触摸屏来说,Rx-plate是固定的,因为使用的是12bit的AD,故除以4096。对于触摸屏压力检测来说,式6即能说明当前压力大小关系。
Ft=XPOS*Z2POS/Z1POS-XPOS (式6)
Ft的绝对值越小,说明按下越可靠,采样值有效。反之,可以认为是轻按,采样值无效。
- 动态调整触摸屏的灵敏度
- 如何有效的调整SwipeRefreshLayout的灵敏度
- ubuntu调整鼠标灵敏度
- Ubuntu上Trackpoint中键滚动与灵敏度的调整
- 硬件参数 调整 麦克风MIC灵敏度 原理
- 硬件参数 调整 麦克风MIC灵敏度 原理
- 硬件参数 调整 麦克风MIC灵敏度 原理
- 硬件参数 调整 麦克风MIC灵敏度 原理
- 麦克风MIC 工作原理以及灵敏度调整
- 灵敏度的定义
- 水听器灵敏度的计算
- GPS接收机的灵敏度分析
- 接收灵敏度的定义公式
- 喇叭的灵敏度代表什么
- GPS接收机的灵敏度分析
- 可调节灵敏度的ViewPager
- [灵敏度]底噪的计算
- ubuntu 12.04下Trackpoint 小红点灵敏度和速度调整
- dsp中eallow edis是什么意思
- java中抽象类与接口详解
- 内核资源URL
- 每个人都是自己的CEO—采访张潇清
- ACE_INET_Addr::get_host_addr()令人抓狂的一面
- 动态调整触摸屏的灵敏度
- 伤了。。
- MediaBuffer使用要点
- 售前经验分享
- android中的managedQuery和Query
- 【转载】如果你是ACMer,你会选择哪个职业?(来自shǎ崽)
- ASP.NET利用ajax实现类似百度的智能提示框
- 如何打开注册表
- ISO 639-1語言列表