uc/OS-II下ARM7定时器捕获实现红外解码

在ARM7平台使用uc/OS-II操作系统中,通过定时器捕获功能实现红外解码。文章介绍了从51单片机的简单解码过渡到ARM7的挑战,详细描述了采用下降沿捕获中断的定时器1初始化过程,以及如何根据捕获的脉宽进行数据判断和处理。虽然没有实现地址码判断和连发码检测,但已能处理数据码并进行简单的反馈验证。
摘要由CSDN通过智能技术生成


今天下午的时候,调试努力之下,终于把红外解码弄出来了。微笑其实以前有次比赛的时候就已经用到了红外,只是那次用的是51单片机,用的是外部中断和延时检测脉宽来进行解码,因为51的时钟这些比较简单,所以解码很容易就正确了。但是现在换到了ARM7平台下,由于对它的不是很熟悉,怎么用普通语句实现精确延时对我来说是个难点。最后考虑用两个方案来实现红外的解码。方案一是用外部中断加定时器延时检测脉宽进行解码,但是结果并没有我想的那样美好,调试了半天也没有实现正确的解码,个人认为是任务节拍的影响,但是确实不知道该怎么修改,最后放弃方案一,改用方案二,用定时器捕获实现红外的解码,并最终实现。

LPC2103芯片带有定时器捕获,可以设置为下降沿,上升沿或双边沿捕获中断。因为结合到此款红外编码方式,所以采用下降沿进行捕获。定时器0因为用作了系统节拍定时器,所以我选择了定时器1的捕获。

定时器1进行如下的初始化。

void SetTimer(void)
{
	T1TCR = 0x02;						//关闭复位定时器1
	T1PR = 10;						//11分频,约1us计时一次(外设时钟11.0592MHZ)
	T1CCR = 0x06;					
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值