selflag_db 发表于 2012-9-20 09:22:47

关于触摸驱动的问题input_report_abs

input_report_abs(dev,ABS_X,55);
input_report_abs(dev,ABS_Y,55);


按理说触摸笔按下去,鼠标指针会跳到(55.55)的位置;

现在我发现按下去的时候没反应,等抬起的时候才会跳到那个位置。。。

TQ-ZQL 发表于 2012-9-20 10:21:34

你只有这两句还不可以看出什么来。你要不看下我们6410的教程中有关输入了系统的那章节吧,那个是对输入子系统分析得非常好的。

selflag_db 发表于 2012-9-20 10:54:01

1、手指刚触摸到屏时,发生中断执行
input_report_abs(input_dev, ABS_X, 240);
input_report_abs(input_dev, ABS_Y, 120);                       
input_report_abs(input_dev, ABS_PRESSURE, 1);
input_report_key(input_dev, BTN_TOUCH, 1);
input_sync(input_dev);
2、手指离开屏时,发生中断执行
input_report_abs(input_dev, ABS_PRESSURE, 0);
input_report_key(input_dev, BTN_TOUCH, 0);
3、当手指刚触摸到屏时串口输出信息(如果手指一直不动不离开屏则没有信息再输出)
pressed x: 240, y: 120, area: 4
evbug: Event. Dev: input0, Type: 3, Code: 0, Value: 240
evbug: Event. Dev: input0, Type: 3, Code: 1, Value: 120
evbug: Event. Dev: input0, Type: 3, Code: 24, Value: 1
evbug: Event. Dev: input0, Type: 1, Code: 330, Value: 1
evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0
4、刚手指离开屏时串口输出信息
==========RELEASE=finger0==========
evbug: Event. Dev: input0, Type: 3, Code: 24, Value: 0
evbug: Event. Dev: input0, Type: 1, Code: 330, Value: 0
evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0

TS_READ----> x = 240, y = 120, pressure = 1
946656073.202784:    240    120      1

TS_READ----> x = 240, y = 120, pressure = 0
946656073.952571:    240    120      0

5、分析
TS_READ----> x = 240, y = 120, pressure = 1
946656073.202784:    240    120      1

TS_READ----> x = 240, y = 120, pressure = 0
946656073.952571:    240    120      0
以上这些信息是tslib中打印输出的。
TS_READ----> x = 240, y = 120, pressure = 1
946656073.202784:    240    120      1
以上这两句我感觉应该出现在3(当手指刚触摸到屏时)中的串口信息输出位置才正常。可它偏偏就出现在4(刚手指离开屏时)中。
页: [1]
查看完整版本: 关于触摸驱动的问题input_report_abs