红外接收算法。欢迎拍砖。

[复制链接]
4450|13
 楼主| popo77 发表于 2007-5-8 10:56 | 显示全部楼层 |阅读模式
刚刚完成了红外接收。现把算法发布出来供大家分享。不为显摆,只为活跃社区,常常在这里看贴,现在也把自己的心得贴出来。欢迎拍砖。

hs6221发送,接收头解码。使用定时及外中断。

//码元接收
//1.Wt1
//收到下降边沿E1
//启动100us定时器。每定时中断一次查询输入引脚电平,分别计入高低电平计数器。
//进入Wt2

//2.Wt2 9ms
//判断输入管脚电平为高触发中断(因为硬件不能设置上升沿触发中断)
//根据高电平计数次数判断间隔时间。如满足9ms起始标志,清计数器,进入Wt3;否则清计数器,关定时器转1。

//3.Wt3 4.5ms/2.25ms
//3.1 判断时间间隔若为4.5ms,表明为新键按下。计数器清零,等待下次中断,转Wt4。
//3.2 判断时间间隔若为2.25ms,表明重复按键。最近一次码元加入缓冲队列。清计数器,关定时器转1。
//3.3 其它时间,非法,清计数器,关定时器转1。

//4.Wt4 1.125/2.25
//4.1 1.125/2.25ms 当前码为0/1,码元计数器加1。
//若码元计数器为32,则一帧完毕。码元加入缓冲队列,置新码标志,清计数器,关定时器转1;否则转4重复。
//4.2 其它间隔时,转1。[毛刺处理暂未考虑]。
xxdcq 发表于 2007-5-8 11:02 | 显示全部楼层

这是在已知格式的遥控器解码

这是在已知格式的遥控器解码
如果是未知遥控器怎么办?
 楼主| popo77 发表于 2007-5-8 11:24 | 显示全部楼层

阿?未知格式吗?

我的想法:
    未知格式的话,应该有个采集并分析的过程。
    采集不用说,只要接收头就可以了。
    分析的过程,我现在想到的是,和所有已知格式比对。如果是专用保密的格式,好像就涉及密码学吧,红外不过是载体罢了。

不知道对不对,期待达人的回复。
dcp 发表于 2007-5-8 13:23 | 显示全部楼层

一个IO口加一个定时器可否搞掂?

当然定时中断可以用,但不能用外中断
yewuyi 发表于 2007-5-8 13:42 | 显示全部楼层

LS为什么不让用外部中断?

麦田51 发表于 2007-5-8 13:44 | 显示全部楼层

协议

请问楼主的红外接受发送用的是哪种协议??modbus,645还是别的?
xxdcq 发表于 2007-5-8 13:57 | 显示全部楼层

看看我们的红外遥控

http://www.yofeng.com/IrCtrR.asp
可以自动识别95%的红外遥控器
 楼主| popo77 发表于 2007-5-8 17:03 | 显示全部楼层

回六楼。是NEC编码标准。

谢谢版主,第一个裤子。呵呵。开心啊。
DCP 发表于 2007-5-9 00:14 | 显示全部楼层

RE:5楼

第一个原因是故意不用,这就要睇你的编程能力了
另外一个原因是外中断给其他任务占用了.这时你必须在没有外中断的情况下进行红外解码!
chenkaifa 发表于 2007-5-14 20:32 | 显示全部楼层

求助

有没有用C51写的子程序,借我参考一下谢谢
email: c0088@qq.com
mylovetus 发表于 2007-5-14 22:59 | 显示全部楼层

好的编程习惯----尽量少用中断,尤其是外部中断!

我的外部中断只能用在STOP模式下的唤醒.唤醒之后再关外部中断.
xwj 发表于 2007-5-14 23:07 | 显示全部楼层

LS,没你那种说法,应该合理使用中断,并坚决杜绝中断中等待

udbit18 发表于 2007-8-8 15:06 | 显示全部楼层

不错不错,好东西,知道共享,真是好

ywk99521 发表于 2008-9-2 09:37 | 显示全部楼层

学习

我也做红外发送和接收,有没有做多路同时接收和发送的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

33

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部