找回密码
 立即注册
查看: 1668|回复: 16

pwm相位移动120°例程改动了一下,出了点问题,请教梁工

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-05-03 14:22:29

3

主题

20

回帖

149

积分

注册会员

积分
149
发表于 2023-5-26 16:33:34 | 显示全部楼层 |阅读模式
1:直接用的例程:17-PWMA-3个相位差120度的PWM互补输出P2口

2:修改 主频到24M   最大周期为2000  
3:主程序做了第二路占空比自动变化
QQ图片20230526162653.png

4 中断里面,加了一点限制
QQ图片20230526162803.jpg

视频现象如下:

更改后代码: main.zip (75.4 KB, 下载次数: 98)



不知道该怎么处理,请梁工指教
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-05-03 14:22:29

3

主题

20

回帖

149

积分

注册会员

积分
149
发表于 2023-5-26 16:36:10 | 显示全部楼层
本帖最后由 flyarm 于 2023-5-26 16:38 编辑

pwa2限制在20附近 启动后,运行一个周期,第3路才不输出;如果限制值加大到50以后,第三路上电后直接就不输出了;如果限制小于15,就可以正常输出,只是第2路不能保持低电平,所以才加的限制条件

点评

我研究了很久,还是看不明白的你的描述。你重新整修这3个信号的要求,我来写给你。 1、三相信号是否还是保持120度相位差? 2、是否是1、3相占空比不变,2相变化?  详情 回复 发表于 2023-5-27 22:37
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-5-27 22:37:21 | 显示全部楼层
fly*** 发表于 2023-5-26 16:36
pwa2限制在20附近 启动后,运行一个周期,第3路才不输出;如果限制值加大到50以后,第三路上电后直接就不输 ...
我研究了很久,还是看不明白的你的描述。
你重新整修这3个信号的要求,我来写给你
1、三相信号是否还是保持120度相位差?
2、是否是1、3相占空比不变,2相变化?

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-05-03 14:22:29

3

主题

20

回帖

149

积分

注册会员

积分
149
发表于 2023-5-28 09:16:14 | 显示全部楼层
本帖最后由 flyarm 于 2023-5-28 19:26 编辑

1、  3个信号有相位差,但不是固定的:一个输出完毕,立刻输出下一路   2、 3个占空比都是可变的0-预设值,但是总和不超过一个周期

产生问题的原因是:因为中断需要时间,当占空比很小或者,前后两个间隙很小的时候,都会造成输出错误;  所以我做了一个最小占空比的限制;

理论上,我做了这个占空比限制之后,当大于这个限制值会正常占空比输出,小于这个占空比输出,强制输出为0;   我测试发现,单个值测试正常,但是当我设置动态变化时,前面一路当经过占空比0的点之后,后面一路没有输出了;


如果pwm输出频率低 这个问题还好解决,如果输出频率增加 这个问题变得严重;牺牲掉的占空比就增加了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-05-03 14:22:29

3

主题

20

回帖

149

积分

注册会员

积分
149
发表于 2023-5-28 20:15:16 | 显示全部楼层
我发现用这种方式 有个最大的缺点,就是中断占用太多了; 导致我其他的任务开多了,会造成影响;不知道梁工有没有其他的实现方式
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-05-03 14:22:29

3

主题

20

回帖

149

积分

注册会员

积分
149
发表于 2023-5-29 14:35:22 | 显示全部楼层
梁*** 发表于 2023-5-27 22:37
我研究了很久,还是看不明白的你的描述。
你重新整修这3个信号的要求,我来写给你。
1、三相信号是否还是保 ...

现在关键想不通的是为什么加了限制后 会导致后面一路输出异常,甚至不输出

点评

中断处理需要时间,所以占空比最大值、最小值都受限制,中断除了计算、重装值外,不做别的事,则大约需要至少64个时钟,建议留100个时钟比较保险,中断要设置为最高优先级,别的中断优先级都低。 满足上述条件,才能  详情 回复 发表于 2023-5-29 14:50
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-5-29 14:50:02 | 显示全部楼层
fly*** 发表于 2023-5-29 14:35
现在关键想不通的是为什么加了限制后 会导致后面一路输出异常,甚至不输出 ...

中断处理需要时间,所以占空比最大值、最小值都受限制,中断除了计算、重装值外,不做别的事,则大约需要至少64个时钟,建议留100个时钟比较保险,中断要设置为最高优先级,别的中断优先级都低。
满足上述条件,才能正常的使用这种程序。

而如果使用STC8A8K64D4或STC8G2K系列的增强型PWM,不需要中断,可以完美的解决你的要求,因为每路PWM的高、低电平点可以随意设置。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-05-03 14:22:29

3

主题

20

回帖

149

积分

注册会员

积分
149
发表于 2023-5-29 16:40:33 | 显示全部楼层
梁*** 发表于 2023-5-29 14:50
中断处理需要时间,所以占空比最大值、最小值都受限制,中断除了计算、重装值外,不做别的事,则大约需要 ...

这个限制我可以理解  不能理解的是为什么动态变化的过程,超过了这个限制值,还是没有输出,就像我视频里面一样,后来第三路干脆没输出了

点评

我还没空测试你的程序,只是猜测:值太小没装载下一个匹配点,值太大还没到,就装载了下一个匹配点。  详情 回复 发表于 2023-5-29 17:38
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-5-29 17:38:30 | 显示全部楼层
fly*** 发表于 2023-5-29 16:40
这个限制我可以理解  不能理解的是为什么动态变化的过程,超过了这个限制值,还是没有输出,就像我视频里 ...

我还没空测试你的程序,只是猜测:值太小没装载下一个匹配点,值太大还没到,就装载了下一个匹配点。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

积分
15646
发表于 2023-5-29 18:56:18 | 显示全部楼层
1.png
那你就将主频提高到 35MHz, 你具体用的哪个型号 ?
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 14:54 , Processed in 0.122690 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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