调试触屏的一些积累

 
最近在做一些调试触屏的工作,经过一段时间的接触,碰到了一些问题,随手记下。
 
电容屏的的驱动,常见的问题是:
 
1.虚拟按键的敏感区域不正确
比如触碰虚拟按键的图标,按键无反应,但是触碰按键图标的右上角,按键的反应却正常。
 
2.在触屏测试时,画的线不圆滑,有的折线很明显
触屏的交互方式有种叫做握手模式,但是需要配合firmware来共同协调,达到很好的效果
 
3.硬件的问题
敏感区域向右上偏,左下角会有区域无反应
 
4.在调试过程中
getevent来检查是否产生中断
cat /proc/kmsg来观察自己设定的trace
 
调试的基本过程:
1.sample代码和datasheet的获取。
2.上电。有的是常供电,有的是需要操作一下gpio
3.调中断。如果在串口中能输出终端信息,也就成功了一半了。
4.确认i2c地址,vendor提供的地址大多是8为地址,而android里面使用的是7为的地址。
5.上面的步骤完成后,触屏就可以正常通讯了,也就是完成了基本的功能,下面的工作就是做一些优化,如firmware的升级、虚拟按键的添加及坐标的调整、精确度的调整等等。
6.测试。进行详细的测试,有问题再根据情况解决。
 
电阻屏
需要注意的是,需要先进行校准,校准之后才能判断,触屏的驱动到底好不好使。
电阻屏有弹性,是靠压力来产生电信号的,准确度比较高。
 

软件平台:Android 4.0

问题描述:

今天在调试电容屏驱动,将Android 2.3的驱动代码直接移植到4.0中,发现触摸屏不能用;

由于硬件已事先在Android2.3上验证过,首先排除了硬件上的问题;触摸屏驱动也在2.3平台上能正

常使用,为什么移植到4.0上就出现问题了呢?

 

测试步骤:

1、getevent查看事件发现事件上报正常;

2、加串口打印,发现触摸点坐标也正常;

难道底层没问题,而是应用层有问题了?这时突然想起前几日在4.0平台上移植过电阻屏驱动,为什么

电阻屏能正常工作而电容屏却不行了?看来问题还在触摸屏驱动里面。

 

通过对比两者驱动代码,找到了问题的原因:

原来在电阻屏驱动中,每次上报事件结束时都有报如下两句:

input_report_key( input_dev , BTN_TOUCH , 1);    // pressed

input_report_key( input_dev , BTN_TOUCH , 0);    // realse

在电容屏驱动中却没有,加上之后电容屏工作正常。

 

之后在网上搜索了一下才知道Andorid 的 touchscreen 事件必须要有  BTN_TOUCH 才可以。

所以初始化的时候加上:

tablet_dev->keybit[BIT_WORD (BTN_TOUCH)] = BIT_MASK (BTN_TOUCH);

报事件的时候加上

input_report_key( input_dev , BTN_TOUCH , 1);    // pressed

input_report_key( input_dev , BTN_TOUCH , 0);    // realse

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值