定时器中断服务函数

2019-07-21 04:51发布

[mw_shl_code=c,true]void TIM3_IRQHandler(void) { if(TIM3->SR&0X0001)//???????? { LED1=!LED1; } TIM3->SR&=~(1<<0);//????????±ê???? } void TIM3_IRQHandler(void) { // if(TIM3->SR&0X0001)//???????? // { LED1=!LED1; // } TIM3->SR&=~(1<<0);//????????±ê???? } 关于定时器中断服务函数的,求问有什么区别![/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 06:05
明显第二个你注释了一个判断条件
这样可能导致不可预知的错误。
定时器中断,最好是加上SR判断。
正点原子
2楼-- · 2019-07-21 11:55
 精彩回答 2  元偷偷看……
帅的被人砍1203
3楼-- · 2019-07-21 13:56
回复【2楼】正点原子:
---------------------------------
谢谢原子哥,这个我就是在例程的基础上改的,进入中断的条件不就是TIM3->SR的低位为1?为什么进到中断后还要判断呢,执行完中断服务后直接把低位清零不就可以了。

其二,我在第二个的LED1=!LED1后加一个小延时,delay_ms(1);结果和第一个的效果一样。不解为何,纠结了好几天!求指教。

一周热门 更多>