1、TIM1定时器里先初始化,其中有一句
if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
{
/* Set the Repetition Counter value */
TIMx->RCR = Structure->RepetitionCounter;//Structure->RepetitionCounter == 1
}
/* Generate an update event to reload the Prescaler
and the repetition counter (only for advanced timer) value immediately */
TIMx->EGR = TIM_EGR_UG;
}
以上程序说明先设置了RCR并且用UG进行了更新。
之后程序执行到启动定时器的语句:
startTimers(); //先设置了RCR,再启动了定时器,而RCR=1为奇数,所以上溢发生更新事件。
而FOC的更新中断必须在下溢出时调用,来设置电流采样点,这就产生了矛盾,百思不得其解。。。。。 |