单片机红外接收的中断程序怎样理解

单片机红外接收的中断程序怎样理解,第1张

你的思路是正确的。

不过你贴的程序看不到引导码的处理过程,或者说没法知道startflag怎么置1的。最好也贴出来。

如果你这个接收程序的中断处理部分完整的话,可以确定所用的单片机不具有修改触发边沿的功能。只能根据第一个下降沿(引导码)和第一个用户码之间的时间来处理(减去0电平的时间)。

从程序上看,

if(startflag)

只是判断可能是起始标记。

if(irtime>32&&irtime<档消63)

//引导码

8-16ms间

bitnum=0

这个判断是否为引导码。如果是,则将数组键置0,准备开始存储数据。即:

irdata[bitnum]=irtime

irtime=0//这个就不说了

bitnum++//这个本来也不该说的,不过结合前面的引导码判断,就有问题岩如了:

1、如果遥控器发射过程中红外线被挡住,irtime会很长···还需要继续存储么?

2、如果接收被干扰,会插入高粗蠢启电平,irtime

不确定···

3·······

简单说,判断过于简单,没法实用的。

话说,你自己有能力写个好的,为嘛还参考别人的?

楼上不对吧,红外热释传感器需要人去触碰吧!! 难道红外热释传感器远晌尺距离就能被触发???

还不如弄个红外发射管,红外接收管,对射!!如果信号中断 表示有宴肆高人过,只是不知道楼主的设计雹念的适用范围。所以 估计 一组对射不够,增加几组了!!

^_^


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8255080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存