高中生
最后登录1970-1-1
在线时间 小时
注册时间2014-9-24
|
/**
* @brief This function handles TIM2 interrupt request.
* @param None
* @retval None
*/
int TIM2_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
{
time++;
LED3_TOGGLE;
return 0;
TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
}
}
我做了一个测试,把return 语句放在清中断标志位前面,用示波器测LED3的反转频率高达353KHz,这是怎么回事呢?
定时器设置的是1ms中断(1000,72)
return返回后程序的PS指针到哪去了?
我又做了一个对比,把中断标志位清楚的语句去掉,发现实验结果和上述的类似
/**
* @brief This function handles TIM2 interrupt request.
* @param None
* @retval None
*/
void TIM2_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
{
time++;
LED3_TOGGLE;
//TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
}
}
有人可以解释一下吗?
|
|