|
我想实现如下波形
看了版主的博文:
http://blog.ednchina.com/STM32/352180/message.aspx
这个用中间对齐计数模式,只能实现2路相位差的PWM波
而http://blog.ednchina.com/STM32/352671/message.aspx
实现方法如下:
STM32的定时器的PWM模式使用TIMx_ARR寄存器控制PWM输出的频率,使用TIMx_CCRx寄存器控制PWM输出的占空比,如果需要移相,只需要在希望移动相位的时刻临时增加或减少TIMx_ARR寄存器的内容,过一个周期之后再恢复TIMx_ARR的内容即可。
这里的一个关键问题是,TIMx_ARR寄存器拥有影子寄存器,改变它的内容时并不会立即影响输出的信号波形,而是在输出波形的一个完整周期结束时才会把影子寄存器的内容拷贝到实际操作的寄存器,这样就可以保证输出波形的每一个周期都是完整的。如果没有影子寄存器,实现这种移相的要求是比较困难的,软件程序很难能够精确地对齐输出波形的周期边缘。
我的理解是:是不是需要设置中断,来不断改变TIMx_ARR寄存器的内容?而我的程序除了要输出4路PWM波,还要干其他事情。
|
|