tilblackout 发表于 2020-11-1 10:49:05

PWM输出可变频率占空比的问题

我用TIM_OCMode_Toggle模式。
但是当占空比是0或100的时候,由于定时器两次中断间有一个间隔,所以会出现这种情况。我想输出完全平滑的波。
除了每次改变占空比或频率重新配置一次TIM_TimeBaseStructure.TIM_Period和TIM_OCInitStructure.TIM_Pulse,还有什么好办法吗?


水晶之泪0517 发表于 2020-11-2 17:35:34

可以使用DMA传输数据到CC1寄存器,可以加快调整的速度;

butterflyspring 发表于 2020-11-11 15:12:28

定时器有预装载功能啊,也就是当前修改的值再下一次更新事件(一般是计数上限,也可以设置间隔更新等)时才会自动加载上去的,这样不会存在中断间隔的问题。楼主可以注意一下这个功能是否合适你

tanic 发表于 2020-11-11 16:54:12

开启预装载功能,否则某时刻cnt<ccr,此时修改ccr,使得cnt>ccr,那么cnt直到增加到arr才会发生跳变。
似乎是这个意思

butterflyspring 发表于 2020-11-12 10:40:12

tanic 发表于 2020-11-11 16:54
开启预装载功能,否则某时刻cntccr,那么cnt直到增加到arr才会发生跳变。
似乎是这个意思 ...

简单明了:lol
页: [1]
查看完整版本: PWM输出可变频率占空比的问题