OpenEdv-开源电子网

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

求大佬给个思路 输出spwm在不改变pwm频率的情况下 能够改变基波频率 类似变频器

[复制链接]

3

主题

16

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-3-24
在线时间
4 小时
发表于 2018-4-20 10:23:32 | 显示全部楼层 |阅读模式
10金钱
我自己用的方法是正弦表的方法 tim1六路输出spwm,通过tim1初始化确定了pwm频率,然后利用定时器2中断进行输出比较tim1的值 通过加大tim2的装载值 来保证了输出pwm频率不变改变基波频率,但这样写tim2的周期延长了,而tim1的周期不变,这多余的周期时间是以怎样的方式表达出来的  滤波后检测基波频率确实有降低,但我总觉得这样写程序有点奇怪。求大佬解答下    LO%{M@]~G(XJUUC@$H225$S.png YN0}$AG$ETDSAO`)TR6GP(C.png

最佳答案

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

其实利用TIM1本身的更新中断会不会更好? 每次更新后,更改下一次PWM的duty。 比方说正弦表有100个数 SFre = 10; if( Sduty > (100*SFre-1) ) Sduty = 0; duty_pwm1 = spwm_sin[Sduty/SFre]; Sduty++; 频率就由SFre控制,SFre越大基波频率越低。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-4-20 10:23:33 | 显示全部楼层
其实利用TIM1本身的更新中断会不会更好?
每次更新后,更改下一次PWM的duty。

比方说正弦表有100个数
                                              SFre = 10;
if( Sduty > (100*SFre-1) ) Sduty  = 0;
                                  duty_pwm1 = spwm_sin[Sduty/SFre];
                                      Sduty++;

频率就由SFre控制,SFre越大基波频率越低。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-21 02:31:35 | 显示全部楼层
帮顶
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-4-21 09:52:10 | 显示全部楼层
TIM2周期的更改,是以倍数形式更改的吗?
比方说,原先TIM1输出2个周期,TIM2更改一次duty。
现在是改成,TIM1输出4个周期,TIM2更改一次duty?

感觉如果你随意更改TIM2,周期,会出现TIM1本周期输出尚未完成,然后duty就被更改。
回复

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-3-24
在线时间
4 小时
 楼主| 发表于 2018-4-23 09:50:35 | 显示全部楼层
a3748622 发表于 2018-4-21 09:52
TIM2周期的更改,是以倍数形式更改的吗?
比方说,原先TIM1输出2个周期,TIM2更改一次duty。
现在是改成 ...

是的任意改确实会出现你说的问题
回复

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-3-24
在线时间
4 小时
 楼主| 发表于 2018-4-23 09:51:17 | 显示全部楼层
回复

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-3-24
在线时间
4 小时
 楼主| 发表于 2018-4-23 09:53:43 | 显示全部楼层
a3748622 发表于 2018-4-20 10:23
其实利用TIM1本身的更新中断会不会更好?
每次更新后,更改下一次PWM的duty。

感激不尽我写着试试
回复

使用道具 举报

0

主题

53

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6508
金钱
6508
注册时间
2017-7-18
在线时间
389 小时
发表于 2018-4-23 10:11:12 | 显示全部楼层
感谢大佬们解答
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6509
金钱
6509
注册时间
2018-6-27
在线时间
549 小时
发表于 2019-8-17 14:49:36 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 05:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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