OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3766|回复: 3

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

[复制链接]

14

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2017-4-17
在线时间
36 小时
发表于 2017-4-20 22:02:29 | 显示全部楼层 |阅读模式
2金钱
如图,选择PWM_Init(899,0)
对应的溢出时间为  (899+1)/72MHz = 1/80K
我的理解是一个PWM计数周期为0.0125ms,那么300个时钟周期应该对应才3.75ms啊
为什么会出现后文中,300个计数周期下延时为3S呢
求大神解答这个时间是怎么算的呀

QQ截图20170420215555.png
QQ截图20170420220027.png

最佳答案

查看完整内容[请看2#楼]

因为10ms才增加1....理解能力啊。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-4-20 22:02:30 | 显示全部楼层
因为10ms才增加1....理解能力啊。
回复

使用道具 举报

2

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2017-3-20
在线时间
86 小时
发表于 2017-4-21 00:57: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秒。
回复

使用道具 举报

14

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2017-4-17
在线时间
36 小时
 楼主| 发表于 2017-4-21 12:32:20 | 显示全部楼层
不存在的时间 发表于 2017-4-21 00:57
PWM本质是将计时器和比较/捕获寄存器里的数相比较来确定输出有效电平还是无效电平的

你的程序里虽然PWM ...

赞一个,讲得很清楚
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-21 23:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表