在如图的PWM例程中的时间问题

2019-08-20 18:30发布

如图,选择PWM_Init(899,0)
对应的溢出时间为  (899+1)/72MHz = 1/80K
我的理解是一个PWM计数周期为0.0125ms,那么300个时钟周期应该对应才3.75ms啊
为什么会出现后文中,300个计数周期下延时为3S呢
求大神解答这个时间是怎么算的呀

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
不存在的时间
2019-08-20 20:48
PWM本质是将计时器和比较/捕获寄存器里的数相比较来确定输出有效电平还是无效电平的

你的程序里虽然PWM的频率是80KHZ,但是占空比是在变化的,占空比在0%到33.33%之间(900/300,900是计时器的溢出值,300是设定的比较值)
所以3秒是占空比变化一次的时间,你算的3.75ms是占空比最大时有效电平在一个周期内的时间。

3秒的得来是因为每过10ms(delay_ms(10);),设定的比较值就加一,这样加到最大值300需要3秒的时间,同样300减1直到0也需要3秒。

一周热门 更多>