最近在学习用单片机控制步进电机。这其中的基础便是定时器设置为脉冲翻转模式。
那么如何脉冲翻转,怎样进行什么时候进行脉冲翻转呢?
在脉冲翻转模式下当CNT的计数值等于CCR时输出电平会产生翻转,这时在中断中重新设置CCR的值,便可以输出pwm波了。如设置
TIM_TimeBaseInitStructure.TIM_Period = 65536-1; //ARR
TIM_TimeBaseInitStructure.TIM_Prescaler = 1 - 1; //PSC
uint16_t CCR1=15000; //F=2400 72000 000/(2*CCR) = 2400
此时输出的频率为2400hz。
通过这个时序图可以看到每当计数值CNT达到比较值CCR时,便会产生脉冲翻转,同时更新CCR为CNT+CCR。
在60000到4464阶段。因为计数值是16位最大只能达到65535下一个计数值是65536,超出范围记为0。最好寄到4464时发生新一次的脉冲翻转。循环往复,产生pwm波。改变CCR的值便可以输出不同占空比的方波了。