搜索
查看: 10525|回复: 4

[已解决] pwm的频率计算问题

[复制链接]

该用户从未签到

21

主题

101

帖子

2

蝴蝶豆

中级会员

最后登录
2020-7-19
发表于 2015-3-26 15:31:23 | 显示全部楼层 |阅读模式
比方系统时钟是72mhztimer的预分频系数prescaler36000-1,时钟分频clockdivision0period200,占空比pulse20,现做如下计算:Timer输入时钟频率为72000000/prescaler+1=72000000/36000-1+1=2000hz,即timer每秒计数2000次,则计数一次需要时间1/2000秒,则pwm的周期为(period)200*1/2000s=1/10s=0.1s(由此亦可得pwm频率pwm_freq=1/period,高电平持续时间为占空比(pulse20*1/2000s=1/100s=0.01spwm的频率为:pwm_freq=Timer输入时钟频率/ period =2000/200=10hz,pwm的频率由period决定。由此可得pwm频率的计算公式可写为:pwm_freq=timer输入时钟频率/(period+1)*(prescaler+1),查阅了许多资料,基本上都是这么说的,而且经过分析,确实也是这样的。但是在timer作如下配置的时候,计算公式我就看不懂了,如图1箭头所示处,不清楚的是为什么要多除以一个2呢?另外:TIM1_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV2; //for dead time clock 延时该句的作用到底是什么?下面这这一句呢?有什么作用?会影响pwm的频率的计算方法吗?TIM1_TimeBaseStructure.TIM_RepetitionCounter = REP_RATE;//重复计数器,设置,用于自动重新跪求高手解答!!
为什么多除个2-2.jpg
回复

使用道具 举报

该用户从未签到

35

主题

639

帖子

0

蝴蝶豆

金牌会员

最后登录
2021-8-7
发表于 2015-3-27 00:09:26 | 显示全部楼层
是选的APB1吧。。这个本身就是36M的 14.gif
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

232

帖子

0

蝴蝶豆

高级会员

最后登录
2018-5-25
发表于 2015-3-27 08:20:16 | 显示全部楼层
帮忙顶一下
回复 支持 反对

使用道具 举报

该用户从未签到

133

主题

4688

帖子

239

蝴蝶豆

版主

最后登录
2021-4-10
发表于 2015-3-27 09:45:35 | 显示全部楼层
二楼解释正确,72M是主频。
回复 支持 反对

使用道具 举报

该用户从未签到

100

主题

3786

帖子

1

蝴蝶豆

论坛元老

最后登录
2024-4-24
发表于 2015-3-27 09:52:10 | 显示全部楼层
帮忙顶一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 08:10 , Processed in 0.192307 second(s), 40 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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