CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 9440|回复: 7

A10红外遥控驱动的问题

[复制链接]
发表于 2013-3-12 19:59:07 | 显示全部楼层 |阅读模式
本帖最后由 Ray_ 于 2013-3-12 20:33 编辑

因为需要,想用红外遥控器控制CB。

网上有贴提供了方法:
http://blog.csdn.net/a181622974/article/details/8017467

然而我用adb 连接 CB 后,使用getevent命令是可以看到红外设备的(也就是说驱动实际已经加载了),却无法像上面那个帖子一样获取消息。

我用示波器看过红外遥控发出来的波形,应该没问题。于是怀疑驱动可能有问题。

一边看代码一边翻A10的手册,最后发现,代码里面有一句是这么写的 len += val & 0x7f;
driver/input/sun4i-ir.c 364行,文件中还有其他三个地方也这么写的。

A10 手册上有写,红外遥控接收使用了 RLC编码 ,也就是一字节的最高位代表电平高低,余下7位代表该电平持续的采样周期数,如果周期数超过了128,那么用下一个字节接着表示。

而驱动里面那句话的本意用来统计连续电平的采样周期数之和,但是这句话实际的含义是 len = len + val & 0x7f;  +号优先级较高,所以没法正确统计。应该改成 len += (val & 0x7f); 也就是 len = len + (val + 0x7f);

修改完重新编译后可以收到遥控器的消息了。

后记:以上说法不正确,后来我又尝试了一下,之前那个写法是对的!+= 是一个整体,不能像我那么简单的分开看


回复

使用道具 举报

 楼主| 发表于 2013-3-12 20:14:54 | 显示全部楼层
本帖最后由 Ray_ 于 2013-3-12 20:34 编辑

结贴!
回复 支持 反对

使用道具 举报

发表于 2013-4-23 13:45:59 | 显示全部楼层
楼主c语言不过关。。。
回复 支持 反对

使用道具 举报

发表于 2013-4-23 23:20:32 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2013-4-25 13:17:20 | 显示全部楼层
最后到底是什么原因导致的?重新编译一个就好了??
回复 支持 反对

使用道具 举报

发表于 2013-4-25 20:54:10 | 显示全部楼层
最终是怎么解决问题的呢?我也遇到了同样问题。
照论坛帖子方法 不行啊....
回复 支持 反对

使用道具 举报

发表于 2013-5-6 09:58:32 | 显示全部楼层
qiuqiuwang99 发表于 2013-4-25 20:54
最终是怎么解决问题的呢?我也遇到了同样问题。
照论坛帖子方法 不行啊.... ...

首先你要将你的内核中的有关的sun4i-ir的红外配置选择M  模块编译,然后再你的init.XXX.rc文件中on boot关键字下将你的sun4i-ir.ko驱动加载
然后,烧录固件
c> adb shell
#getevent
将你的红外遥控器对照你的板子进行按键,如果有内容显示说明你的驱动加载成功了,你将对应的按键的16进制的数据记录下来,然后按照bbs.A10.com上面有关A10的配置
进行操作!就行了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-5-7 00:07 , Processed in 0.022453 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部