Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1972215
  • 博文数量: 610
  • 博客积分: 11499
  • 博客等级: 上将
  • 技术积分: 5511
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 19:27
文章分类

全部博文(610)

文章存档

2016年(5)

2015年(18)

2014年(12)

2013年(16)

2012年(297)

2011年(45)

2010年(37)

2009年(79)

2008年(101)

分类:

2012-07-09 14:28:54

 

软件平台: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

至于为什么会这样现在还没来得及分析,待以后弄清楚了补上。

阅读(820) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~