红外解码实验用到定时器更新中断来做什么求指点

2019-08-20 19:17发布

[mw_shl_code=c,true] if(TIM_GetITStatus(TIM5,TIM_IT_Update)!=RESET)//更新中断, { if(RmtSta&0x80)//上次有数据被接收到了 引导码标志是1 { RmtSta&=~0X10; //取消上升沿已经被捕获标记 if((RmtSta&0X0F)==0X00)RmtSta|=1<<6;//标记已经完成一次按键的键值信息采集 if((RmtSta&0X0F)<14)RmtSta++; else { RmtSta&=~(1<<7);//清空引导标识 RmtSta&=0XF0; //清空计数器 } } }[/mw_shl_code] 这段程序干什么的。实在没有看懂用这个定时器的更新中断来做什么, 他们的帖子也看了但是也不懂,纠结一天了。还请明白人指点一二。 那个14 是干什么的 ,还有那个清空计数器  清楚的什么???

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
船长23
2019-08-21 11:49
回复【6楼】fjqzzhangzhibin:
---------------------------------
回复【5楼】正点原子:
---------------------------------
原子哥,我解释下你看看对不对,耽误你一点时间,我也琢磨了一天呢,后来我发现在开发指南里有这么一句话,遥控接收头在收到脉冲时候为低电平没有脉冲时候为高电平。这样的话我们在按键完成之后一直是高电平捕获中,自然就会溢出,溢出之后判断是不是第一次溢出,也就是if(RmtSta&0X0F)==0X00,说实话我当时最最不明白的就是这句,如果是第一次溢出的话就标记完成一次采集。可是下面那句判断是不是14次溢出的我觉得是不是有点没必要呢?那句话我还是有点疑惑。原子哥看到的话帮忙解答下吧。

一周热门 更多>