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

2019-08-20 18:30发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-08-20 19:33
因为10ms才增加1....理解能力啊。
不存在的时间
2楼-- · 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秒。
lu785434499
3楼-- · 2019-08-21 01:15
不存在的时间 发表于 2017-4-21 00:57
PWM本质是将计时器和比较/捕获寄存器里的数相比较来确定输出有效电平还是无效电平的

你的程序里虽然PWM ...

赞一个,讲得很清楚

一周热门 更多>