本帖最后由 trihook 于 2011-2-23 13:28 编辑
系统clock 24mhz, timer3时基 24mz
timer 开启两个事件: CC1比较事件 ; update 事件
中断程序如下,
情况1
void TIM3_IRQHandler(void)
{
if (TIM_GetITStatus(TIM3, TIM_IT_CC1) != RESET)
{
..............
}
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
{
..............
}
}
逻辑正常
情况2 修改成既存器操作, 逻辑出现异常
void TIM3_IRQHandler(void)
{
if ( (TIM3->SR & 0x0002)&&(TIM3->DIER & 0x0002))
{
}
if ((TIM3->SR & 0x0001) &&(TIM3->DIER & 0x0001))
{
}
} |