ft5x06 ctpm调试
来源:互联网 发布:网络销售如何提高业绩 编辑:程序博客网 时间:2024/06/05 17:47
1.驱动正常加载:最后是以.o的形式加载,如果.ko要在一个初始脚本里加载。也可手动加载。前提示设备名字大小写一只,并且从地址是对的。
2,i2c通信正常。现在碰到的问题是i2c read error -6.。以前调gc2035时就碰到了。原先以为是引脚错了。其实是reset脚没做操作。
应该是先拉高,延迟100ms,然后拉低。延迟10s,然后在拉高。延迟10ms。
这样i2c就通了。
今天fae过来说gpio脚没中断功能,(我已配置gpio脚为中断脚了。这个gpio脚必须为外部中断脚(EXT_INT)不能普通中断脚(INT)。)
然后飞线到专门的exint脚。tp。有中断了。
3.现在碰到tp点不准漂移现象了。悲催。!!
然后我用adb 命令去看数据:
这是我单指放tp上获取的数据,如果我不移开。就一直循环打印这些数据。
最下面的0001 008b 00000001分别叫做type,code,value。
参考linux input,type 对应 【#define EV_KEY 0x01】,code 对应【#define KEY_MENU 139】(8b == 139),value 1表示按下,0表示松开。那么按键的协议就很清楚了,试着在adb shell里面输入“sendevent /dev/input/event2 0 139 1”和”sendevent /dev/input/event2 0 139 2“后发现menu弹出来了,和按键的效果一样。
触摸协议分析
ok,来点复杂的。触摸协议稍微麻烦点,分单点触摸和多点触摸。
先说单点触摸,打开模拟器。同样关闭自动旋屏,进入adb shell。鼠标点击一下屏幕,要足够快,不然数据太多。得到输出和下面类似。
可以看到模拟器上的设备数少了很多,单点触摸的协议每次点击会写6条信号。参考linux_input对应的值以及分析分别如下
/dev/input/event0: 0003 0000 00000117 EV_ABS ABS_X 0x117
触摸点的x坐标
/dev/input/event0: 0003 0001 0000020f EV_ABS ABS_Y 0x20f
触摸点的y坐标
/dev/input/event0: 0001 014a 00000001 EV_KEY BTN_TOUCH 1
touch down
/dev/input/event0: 0000 0000 00000000 EV_SYN 0 0
同步信号量
/dev/input/event0: 0001 014a 00000000 EV_KEY BTN_TOUCH 0
touch up
/dev/input/event0: 0000 0000 00000000 EV_SYN 0 0
同步信号量
使用4.0的模拟器,settings-developer options-show touches 和pointer locations勾上后,可以看到点击的轨迹,adb shell后分别用sendevent输入以上消息,可以看到屏幕上出现点击效果。
再看多点触摸协议,使用adb shell 进入手机,关掉旋屏,getevent后快速点一下屏幕,可以看到类似如下输出。(每个厂商的协议可能不同,以下数据为小米1的)
第一个坐标
/dev/input/event1: 0003 0039 00000000 EV_ABS ABS_MT_TRACKING_ID 0
/dev/input/event1: 0003 0035 000001b0 EV_ABS ABS_MT_POSITION_X 0x1b0
/dev/input/event1: 0003 0036 000000d7 EV_ABS ABS_MT_POSITION_Y 0xd7
/dev/input/event1: 0003 003a 00000001 EV_ABS ABS_MT_PRESSURE 0x1
/dev/input/event1: 0003 0032 00000001 EV_ABS ABS_MT_WIDTH_MAJOR 0x1
/dev/input/event1: 0000 0002 00000000 EV_SYN SYN_MT_REPORT 0
/dev/input/event1: 0000 0000 00000000 EV_SYN SYN_REPORT 0
第二个坐标
/dev/input/event1: 0003 0039 00000000 EV_ABS ABS_MT_TRACKING_ID 0
/dev/input/event1: 0003 0035 000001b0 EV_ABS ABS_MT_POSITION_X 0x1b0
/dev/input/event1: 0003 0036 000000d7 EV_ABS ABS_MT_POSITION_Y 0xd7
/dev/input/event1: 0003 003a 00000001 EV_ABS ABS_MT_PRESSURE 0x1
/dev/input/event1: 0003 0032 00000001 EV_ABS ABS_MT_WIDTH_MAJOR 0x1
/dev/input/event1: 0000 0002 00000000 EV_SYN SYN_MT_REPORT 0
/dev/input/event1: 0000 0000 00000000 EV_SYN SYN_REPORT 0
第三个坐标
/dev/input/event1: 0003 0039 00000000 EV_ABS ABS_MT_TRACKING_ID 0
/dev/input/event1: 0003 0035 00000191 EV_ABS ABS_MT_POSITION_X 0x191
/dev/input/event1: 0003 0036 00000098 EV_ABS ABS_MT_POSITION_Y 0x98
/dev/input/event1: 0003 003a 00000001 EV_ABS ABS_MT_PRESSURE 0x1
/dev/input/event1: 0003 0032 00000001 EV_ABS ABS_MT_WIDTH_MAJOR 0x1
/dev/input/event1: 0000 0002 00000000 EV_SYN SYN_MT_REPORT 0
/dev/input/event1: 0000 0000 00000000 EV_SYN SYN_REPORT 0
松开
/dev/input/event1: 0000 0002 00000000 EV_SYN SYN_MT_REPORT 0
/dev/input/event1: 0000 0000 00000000 EV_SYN SYN_REPORT 0
这里是一次点击,注意到ABS_MT_TRACKING_ID都是一样的。系统检测到三个点,每次会发送点的x,y,以及收到的压力,触摸的范围。最后两条表示松开这个点。如果两个手指同时点击,可以发现ABS_MT_TRACKING_ID会有两个不同的值,分别是两个点。据说最多支持5点。
每个厂商实现协议不一样。htc g3如下
/dev/input/event1: 0003 003a 002a0002
/dev/input/event1: 0003 0039 8b8c0ddc
/dev/input/event1: 0003 003a 00000002
/dev/input/event1: 0003 0039 8bac0dde
/dev/input/event1: 0003 003a 00000000
/dev/input/event1: 0003 0039 802814b1
这是android层获取触摸数据的方法。
当然还有kernel层。就是在驱动里加打印信息了
- ft5x06 ctpm调试
- 调试FT5X06碰到的问题
- tiny210 touchscreen(ft5x06) 驱动
- ft5x06 touchscreen的selftest
- ft5x06 驱动带键盘
- FT5X06--I2C波型解析
- 关于电容屏幕驱动的几个文件ft5x06-ts.idc/ft5x06-ts.kcm/ft5x06-ts.kl的认识
- 基于FT5x06嵌入式Linux电容触摸屏驱动
- 电容屏FT5x06驱动与设计
- i.MX53 电容触摸屏驱动 - FT5x06
- 基于FT5x06嵌入式Linux电容触摸屏驱动
- 基于FT5x06嵌入式Linux电容触摸屏驱动
- 电容屏FT5x06驱动与设计
- i.MX53 电容触摸屏驱动 - FT5x06
- 基于FT5x06嵌入式Linux电容触摸屏驱动
- ft5x06的virtual key的实现
- ft5x06获取PROJECT_ID/ FW_VER /VENDOR_ID/ glass_vendor
- 基于FT5x06嵌入式Linux电容触摸屏驱动
- 编译64位boost
- 第八周项目三:分数重载
- Android的国际化
- DLL中界面风格设置
- 出现java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
- ft5x06 ctpm调试
- 第八周任务
- 监视器,定点发生
- 合并两个List集合。有相同的元素只存在一次
- 德州爆炸案被网络犯罪分子借题发挥
- IOS学习笔记—Objective C—创建单例 .
- 64位Windows系统如何配置32位ODBC数据源
- net.sf.json.JSONException: Object is null
- 对于Android DEX文件详细说明