OpenEdv-开源电子网

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

PWM可调频率

[复制链接]

11

主题

85

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2016-3-16
在线时间
15 小时
发表于 2016-7-14 16:07:58 | 显示全部楼层 |阅读模式
我现在想通过PWM输出0到20khz的波形控制步进电机,要求占空比是50%,但是频率要是可调的,分辨率10hz就可以了,求各位大神指教!   本人QQ:252290923
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2016-6-30
在线时间
20 小时
发表于 2016-7-15 12:47:51 | 显示全部楼层
定义一个参数,用于改变定时器的频率,比如:u16 arr;
然后每隔一个时间,arr++;

TIM_SetCompare1(TIM14,(arr+1)/2);        这个能够保证占空比一直都是50%
TIM_SetAutoreload(TIM14,arr);          重新定义PWM输出的频率

这个可以实现,我已经用示波器看过,可以实现想要的功能
回复 支持 反对

使用道具 举报

11

主题

85

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2016-3-16
在线时间
15 小时
 楼主| 发表于 2016-7-16 14:44:41 | 显示全部楼层
447876460 发表于 2016-7-15 12:47
定义一个参数,用于改变定时器的频率,比如:u16 arr;
然后每隔一个时间,arr++;

      这个我试过了,频率F=72M/(arr+)*(psc+1),假设psc自定一个固定值的话,那么f和arr就是成的反比关系。改变arr的值就可以调节频率
     我希望达到的是能够通过改变一个值的方式来改变频率,并且这个值和频率是成直线的线性关系,也就是这个值变大,频率变大,这个值变小,频率变小
    我这么做的目的是因为频率和电机的转速成正比,且是直线的线性关系,所以我希望改变我设定的这个来控制频率,同时可以准确的控制步进电机的转速
回复 支持 反对

使用道具 举报

11

主题

85

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2016-3-16
在线时间
15 小时
 楼主| 发表于 2016-7-16 14:46:23 | 显示全部楼层
447876460 发表于 2016-7-15 12:47
定义一个参数,用于改变定时器的频率,比如:u16 arr;
然后每隔一个时间,arr++;

频率f和arr是成的曲线反比,我希望成的正比,就是不知道怎么做这个功能
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-7-16 16:52:01 | 显示全部楼层
自己根据频率计算arr的结果,然后放进去
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 04:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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