[逆变器] 关于SPWM生成的正弦波频率

[复制链接]
10343|28
 楼主| mario凯 发表于 2013-8-15 09:00 | 显示全部楼层
maychang 发表于 2013-8-14 20:06
每次中断时间很短,来得及完成这么复杂的计算吗?
如果未完成,会出现什么情况?

嗯。。。是的。。。确实让它计算的复杂了。现在频率上来。却有些不稳
 楼主| mario凯 发表于 2013-8-15 09:03 | 显示全部楼层
不亦心 发表于 2013-8-13 09:46
我是来学习的。。。
LZ把计算思路说一下吧,那么多寄存器看着头晕。。。
不过肿么那么多浮点数?360个取样 ...

恩恩呢。。。
 楼主| mario凯 发表于 2013-8-15 09:39 | 显示全部楼层
不亦心 发表于 2013-8-13 09:46
我是来学习的。。。
LZ把计算思路说一下吧,那么多寄存器看着头晕。。。
不过肿么那么多浮点数?360个取样 ...

思想就是OCR1A是周期,1B和1C是占空比。将正弦波分成360份,T0定时器查表用来更新占空比。就是这样的。图表确实应该用取整的。,按理说90点是够的,但是用90个点取出来有点像锯齿波。显示出来是这样的。。原因不明。。应该是数据的问题
ygl968 发表于 2013-8-15 10:15 | 显示全部楼层
maychang 发表于 2013-8-15 12:29 | 显示全部楼层
mario凯 发表于 2013-8-15 09:39
思想就是OCR1A是周期,1B和1C是占空比。将正弦波分成360份,T0定时器查表用来更新占空比。就是这样的。图 ...

出现锯齿,是滤波滤得不够。不知道你对PWM波是如何滤波的。
Imne_QQ_wy 发表于 2015-8-9 23:16 | 显示全部楼层
mario凯 发表于 2013-8-15 08:59
int SPWM_sin_value[360]={
17, 34, 52, 69, 87,104,121,139,156,173,……………………997,998,999,999, ...

int SPWM_sin_value[360]  这个怎么计算?sin的频率靠什么改变?
Imne_QQ_wy 发表于 2015-8-9 23:18 | 显示全部楼层
可用过STC15写spwm?该怎么写?
JorryZhao 发表于 2016-12-4 12:12 | 显示全部楼层
学习一下
JorryZhao 发表于 2016-12-7 20:24 | 显示全部楼层
学习了!!!
snakevip 发表于 2017-9-21 15:21 | 显示全部楼层
不亦心 发表于 2013-8-13 09:46
我是来学习的。。。
LZ把计算思路说一下吧,那么多寄存器看着头晕。。。
不过肿么那么多浮点数?360个取样 ...

正解,年(光)轻(棍)时代玩儿过AVR,就是这么做的。
sanzi666 发表于 2018-6-21 16:41 | 显示全部楼层
你是怎么解决这个问题的
cjyyy 发表于 2020-10-18 18:55 | 显示全部楼层
mario凯 发表于 2013-8-12 20:01
通过AVR单片机的PWM产生,占空比是通过查表得到的。一共360个点。

目前AVR输出SPWM我也存在一些问题,新手踏路,请教272819552
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部