请教:如何使用一个定时器实现多路频率可调PWM(占空比不要求可调)?

2019-07-21 08:07发布

本帖最后由 bootblack 于 2018-10-31 13:46 编辑

如题,由于硬件上仅剩余一个硬件定时器(通用定时器),需要实现如下功能:
1、实现5路PWM
2、每路PWM频率都可调整(各路PWM频率都是独立的)
3、占空比没有要求,一般保持50%左右即可
4、每路频率都低于10KHz
5、要求频率误差小于等于1Hz

额,想请教下各路大神,有没有很好的思路,敬请指教!感谢!



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
十0二
2019-07-22 16:48
bootblack 发表于 2018-10-31 20:03
额,非常感谢阁下
不过,我看你的程序,似乎这个改变的是各个通道的占空比,并不能独立改变各个通道的PW ...

频率可以改的 你看一下相关的源码就知道了 花不了几分钟就能明白 或者你也可以去看相关的开发指南和技术手册 上面讲的很清楚 我的这个 在这里配置的就是周期和预分频值
TIM_TimeBaseStructure.TIM_Period = 999; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
        TIM_TimeBaseStructure.TIM_Prescaler =0; //设置用来作为TIMx时钟频率除数的预分
然后有了这两个就能确定频率了  假设我的时钟源是72mhz
那么频率=72000000/(999+1)=72KHZ
  而这个我一般都设为0       TIM_TimeBaseStructure.TIM_Prescaler =0;
但是我这是F1的代码 你如果用的是msp430那我就不清楚我说的这些可不可以帮到你了 因为我不了解你的板子。

一周热门 更多>