高级会员

- 积分
- 516
- 金钱
- 516
- 注册时间
- 2014-5-16
- 在线时间
- 7 小时
|
[mw_shl_code=c,true]//¶¨ê±Æ÷4ÖD¶Ï·tÎñoˉêy
void TIM4_IRQHandler(void)
{
if(TIM_GetITStatus(TIM4,TIM_IT_Update)==SET) //òç3öÖD¶Ï
TIME_CYCLE++;
printf("\r\ntime:%d",TIME_CYCLE);
TIM_ClearITPendingBit(TIM4,TIM_IT_Update); //Çå3yÖD¶Ï±ê־λ
delay_us(5); //èôûóDÑó3ù£¬ÖD¶Ï±êê¶à′2»¼°Çå3y£¬μ¼ÖÂÖD¶ÏÖ′DDá½′Î
}[/mw_shl_code]
由于硬件清除中断标识不及时,中断可能执行两次,解决方法如下:
1:添加延时,如以上代码所示;
2:将清除中断标识的函数往前放,可放在TIME_CYCLE++; 之前,即可解决
总之,要留有清除时间!
|
|