初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2014-6-21
- 在线时间
- 0 小时
|
5金钱
如下面代码所示,定时器5的中断处理函数。
if(TIM_GetITStatus(TIM5,TIM_IT_Update)!=RESET)
{
if(RmtSta&0x80)//上次有数据被接收到了
{
RmtSta&=~0X10; //取消上升沿已经被捕获标记
if((RmtSta&0X0F)==0X00)RmtSta|=1<<6;//标记已经完成一次按键的键值信息采集
if((RmtSta&0X0F)<14)RmtSta++;
else
{
RmtSta&=~(1<<7);//清空引导标识
RmtSta&=0XF0; //清空计数器
}
} ,
在上面的程序中,
设置定时器为10ms溢出,可是程序中无论是0还是1 以及连发码都没有超过 10ms的 那定时器5会产生溢出中断吗?
还有一个地方, if((RmtSta&0X0F)<14)RmtSta++; 中的14又是怎么确定的呢? 以及接下来两句又是什么意思呢? 连发码中好像说要有一段97.94ms的高电平,与这个有关系吗?
本人新手,希望大家帮忙解答一二。先谢过大家了。
|
最佳答案
查看完整内容[请看2#楼]
回复【8楼】公子小白:
---------------------------------
中断就是超时了
超时就说明一帧解码已经结束(不考虑连发码).
14是限制最大溢出次数的.
最大值是15.所以改为15,可能你好理解点.
|