本帖最后由 gz_ddc 于 2012-4-19 16:34 编辑
请教关于定时器PWM的更新中断处理
我看了这个贴:https://bbs.21ic.com/viewthread.php?tid=175841&extra=&highlight=pwm&page=1
里面5楼处提到:在更新中断中改变参数,这样就不会有任何的停顿。
有几个问题想请教下。
1. 什么叫更新中断?对于定时器3来说,是指这个吗?
void TIM3_IRQHandler(void)
{
if(TIM3->SR&0X0001)//溢出中断
{
.... //A处
}
TIM3->SR&=~(1<<0);//清除中断标志位
}
2. 如果问题1正确,那如果我要改CCR2的参数(更改pwm的占空比),那是在上面A处那里赋值给CCR2吗?
3. 定时器3来产生PWM信号,那么定时器3的更新中断是和它的PWM信号更新中断是指同一样东西吗?
4. 假设当前定时器周期的计数器溢出/下溢时,产生了更新中断,而在更新中断里面赋新值给CCR2(新的占空比),那么接下来的定时器周期是马上使用新的占空比吗?
5. 如果问题4成立,那么在更新中断做了一些判断等处理,导致有3uS或5uS的处理时间,那么这3uS或5uS中,PWM是输出什么信号的?是延续上一个波形的电平吗?如果这个更新中断的处理很长,那是不是要等更新中断里面的代码都执行完,才产生下一个pwm波?但这样的话,上一个PWM波的周期不就变了? |