xiaoxei 发表于 2013-9-8 12:52:35

普通IO做红外接收问题

最近在做小东西,单片机只剩一个定时器,没有外部中断管脚,还有普通IO管脚,想连过红外接收,可以遥控控制,但我只懂用中断管脚做的红外接收,现在没有中断管脚,只有普通IO和一个定时器,想了几天,还是想不出来了该怎么实现,问下有没有大神知道这种情况下该怎么做红外接收?不知道有没有人做过,求指点一下,感激不尽。

wshtyr 发表于 2013-9-8 13:04:10

定时器开个100us的中断,每次进中断都将一个全局变量递增作为tick,同时检测IO状态;遇到下降沿就记下此时的tick值,和上一次下降沿的tick值减一下,即可得到脉冲周期,根据脉冲周期就可以解码了

lmt50211 发表于 2013-9-9 09:00:37

本帖最后由 lmt50211 于 2013-9-9 09:02 编辑

这个是我经常用的,楼主可以参考一下.....
用一个中断,任意IO口(有输入功能):设中断为125us,在中断中不停检测红外IO口电平状态,根据计数值不同来判断红外码.

tqting90 发表于 2013-9-9 09:14:59

用一个IO来模拟就好了啊,写个程序判断电平变化的时候开始计时,到下一个电平变化的时候把时候记下来,然后再开始下一次的计时。不是和外部中断一样的原理吗?

tianxian 发表于 2013-9-9 09:28:25

分享红外解码 基于125us定时 任意IO http://www.amobbs.com/thread-5548182-1-1.html

Jason022 发表于 2013-9-9 10:03:43

先收藏了 也行会用到

vergil66 发表于 2013-9-9 10:45:21

收藏,估计以后可能用到.

mk_avatar 发表于 2013-9-9 11:55:36

nice~{:tongue:}

jia_xuan 发表于 2013-9-9 14:11:53

感觉这样中断太频繁了,不过目前想到的也只有这个办法了。

xjsevenxy 发表于 2013-9-9 15:07:01

收藏!!!!!

xiaoxei 发表于 2013-9-9 16:00:46

lmt50211 发表于 2013-9-9 09:00 static/image/common/back.gif
这个是我经常用的,楼主可以参考一下.....
用一个中断,任意IO口(有输入功能):设中断为125us,在中断中不停检 ...

灰常感谢。{:handshake:}

xiaoxei 发表于 2013-9-9 16:01:40

tianxian 发表于 2013-9-9 09:28 static/image/common/back.gif
分享红外解码 基于125us定时 任意IO http://www.amobbs.com/thread-5548182-1-1.html

O(∩_∩)O谢谢{:handshake:}

xiaoxei 发表于 2013-9-9 16:02:13

wshtyr 发表于 2013-9-8 13:04 static/image/common/back.gif
定时器开个100us的中断,每次进中断都将一个全局变量递增作为tick,同时检测IO状态;遇到下降沿就记下此时 ...

感谢。{:handshake:}

zf12862177 发表于 2013-9-9 16:41:04

设定1ms为一个脉冲周期,空闲10ms,数据传送9ms,第一个数据必须是高电平,然后后面的就是数据了

jz701209李 发表于 2013-9-10 19:51:36

路过,学学         

jsntzxh 发表于 2013-9-10 19:54:51

收藏,学习

xiaoxei 发表于 2013-9-13 20:37:36

哈哈,搞好了,感谢群里的兄弟。{:handshake:}

nuncle 发表于 2017-11-3 09:20:48

mark 马上要用

qm9698 发表于 2017-11-12 16:29:17

{:victory:}感谢分享
页: [1]
查看完整版本: 普通IO做红外接收问题