10ms定时器计数溢出中断,已TIMER4为例
//定时器4中断服务程序 void TIM4_IRQHandler(void) { if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET)//是更新中断 { //处理函数 TIM_ClearITPendingBit(TIM4, TIM_IT_Update ); //清除TIMx更新中断标志 TIM4_Set(0); //关闭TIM4 }
问题: 如果处理函数时间过长,对自动重装载的定时器,是否会在处理函数未处理完的时候再次进入中断
问题:是否应该在一进入定时器中断 就关闭定时器, 处理完毕再根据需求打开定时器;
手册内容:
仿真时,出现TIMER计数器 TIM2_CNT数值一直不变的情况,定时器已打开;