• «
  • 1
  • 2
  • »
  • Pages: 2/2     Go
主题 : mini6410 红外 驱动程序+测试程序 (源码) 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 54019
精华: 0
发帖: 76
金钱: 380 两
威望: 76 点
贡献值: 0 点
综合积分: 152 分
注册时间: 2011-08-22
最后登录: 2012-03-17
10楼  发表于: 2011-09-25 11:14
楼主我重写了一个扫描IR的程序
不再使用状态机了 使用中断记录脉宽序列 然后再用另外的程序去分析
但是我现在遇到问题 得到的脉宽数值严重不对啊
楼主能否一起研究下这个 看看我哪里写得不太对?(我还没做解析 先做的脉宽存储)
我的做法是这样的
1.打开EINT中断(双沿) 打开TIMER0中断(100ms)发生中断(此时先不启动Timer)

2.进入中断后先停定时器读取定时器的值 然后将定时器复位(存储这个脉宽值) 第一次进入中断的值被抛弃
3.反复EINT中断多次之后 经过一段时间不产生EINT中断,此时由于TIMER0未被清
TIMER0发生中断 表示一次接收结束 wake_up 此时read会输出脉冲序列的所有内容

但我现在测试 发现得到的脉宽序列数值为
有时候出现
1.全零 2.很多相等的数值
这都是不应该出现的

Lcount:14Hcount:51BitCount:70
47131us
47131us
47131us
47131us
47131us
47131us
47131us
47131us
47131us
47131us
12us
12us
12us
12us
12us
12us
12us
12us
4194us
698us
698us
698us
1833us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
one_wire_status: 4
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
736us
ir:0,0,0,0
Lcount:0Hcount:2BitCount:1
42294495us
ir:0,0,0,0
Lcount:14Hcount:51BitCount:68
47142us
47142us
47142us
47142us
47142us
47142us
47142us
47142us
47142us
47142us
12us
12us
12us
12us
12us
12us
12us
12us
4148us
697us
697us
697us
1833us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
one_wire_status: 4
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
699us
ir:0,0,0,0
级别: 侠客
UID: 54019
精华: 0
发帖: 76
金钱: 380 两
威望: 76 点
贡献值: 0 点
综合积分: 152 分
注册时间: 2011-08-22
最后登录: 2012-03-17
11楼  发表于: 2011-09-25 12:41
oh了 我搞定了
[ 此帖被odanobunaga在2011-09-26 10:57重新编辑 ]
级别: 侠客
UID: 54019
精华: 0
发帖: 76
金钱: 380 两
威望: 76 点
贡献值: 0 点
综合积分: 152 分
注册时间: 2011-08-22
最后登录: 2012-03-17
12楼  发表于: 2011-09-26 20:09
啊  郁闷 竟然会丢中断。。。。
级别: 侠客
UID: 54019
精华: 0
发帖: 76
金钱: 380 两
威望: 76 点
贡献值: 0 点
综合积分: 152 分
注册时间: 2011-08-22
最后登录: 2012-03-17
13楼  发表于: 2011-09-27 15:25
楼主我的也写好了
将状态机移到了应用程序里
驱动只负责记录波形

由于接收会产生丢中断的情况
导致数据有错误

所以我对波形数据进行了简单的纠正,
但是仍会有不正确的情况出现
误码率在百分之1的感觉 还是比较高的 我没统计
[ 此帖被odanobunaga在2011-09-27 15:50重新编辑 ]
附件: 6410红外.rar (243 K) 下载次数:79
  • «
  • 1
  • 2
  • »
  • Pages: 2/2     Go