普通IO做红外接收问题
最近在做小东西,单片机只剩一个定时器,没有外部中断管脚,还有普通IO管脚,想连过红外接收,可以遥控控制,但我只懂用中断管脚做的红外接收,现在没有中断管脚,只有普通IO和一个定时器,想了几天,还是想不出来了该怎么实现,问下有没有大神知道这种情况下该怎么做红外接收?不知道有没有人做过,求指点一下,感激不尽。 定时器开个100us的中断,每次进中断都将一个全局变量递增作为tick,同时检测IO状态;遇到下降沿就记下此时的tick值,和上一次下降沿的tick值减一下,即可得到脉冲周期,根据脉冲周期就可以解码了 本帖最后由 lmt50211 于 2013-9-9 09:02 编辑这个是我经常用的,楼主可以参考一下.....
用一个中断,任意IO口(有输入功能):设中断为125us,在中断中不停检测红外IO口电平状态,根据计数值不同来判断红外码. 用一个IO来模拟就好了啊,写个程序判断电平变化的时候开始计时,到下一个电平变化的时候把时候记下来,然后再开始下一次的计时。不是和外部中断一样的原理吗? 分享红外解码 基于125us定时 任意IO http://www.amobbs.com/thread-5548182-1-1.html 先收藏了 也行会用到 收藏,估计以后可能用到. nice~{:tongue:} 感觉这样中断太频繁了,不过目前想到的也只有这个办法了。 收藏!!!!! lmt50211 发表于 2013-9-9 09:00 static/image/common/back.gif
这个是我经常用的,楼主可以参考一下.....
用一个中断,任意IO口(有输入功能):设中断为125us,在中断中不停检 ...
灰常感谢。{:handshake:} 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:} wshtyr 发表于 2013-9-8 13:04 static/image/common/back.gif
定时器开个100us的中断,每次进中断都将一个全局变量递增作为tick,同时检测IO状态;遇到下降沿就记下此时 ...
感谢。{:handshake:} 设定1ms为一个脉冲周期,空闲10ms,数据传送9ms,第一个数据必须是高电平,然后后面的就是数据了 路过,学学 收藏,学习 哈哈,搞好了,感谢群里的兄弟。{:handshake:} mark 马上要用 {:victory:}感谢分享
页:
[1]