打印
[N32G43x]

DMA修改PWM占空比

[复制链接]
761|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JhonsonChou|  楼主 | 2022-10-31 15:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 JhonsonChou 于 2022-10-31 16:39 编辑

最近调定时器PWM时遇到一个问题,就是用DMA连续模式循环修改PWM占空比时发现周期也被改变了,后面发现是中央对齐模式的问题

正常来说,配置定时器触发DMA修改占空比,触发源通常选择定时器的Update信号,而中央对齐模式下,一个PWM周期内是会产生两次Update信号的

所以当这两次Update信号均作为DMA的触发信号时,在一个PWM周期内,比较值会被修改两次

我们想要循环多次改变占空比,当然是选择一个周期修改一次比较值

解决方法有两个,一个就是将中央对齐模式更改为向上或者向下计数模式,另一个就是当这个计数器为高级定时器时,可以选择配置重复计数值为1,这样的话两次Update信号才会触发一次DMA,亦可解决该问题

附件是将中央对齐模式改为向上计数模式的示例代码,仅供参考
Nations.N32G430_Library.1.0.0_TIM1DMA.rar (9.43 MB)


使用特权

评论回复
沙发
UFO8848| | 2022-10-31 16:28 | 只看该作者
可以附一下DMA修改占空比的代码吗

使用特权

评论回复
板凳
JhonsonChou|  楼主 | 2022-10-31 16:40 | 只看该作者
UFO8848 发表于 2022-10-31 16:28
可以附一下DMA修改占空比的代码吗

代码上传到附件了

使用特权

评论回复
地板
AuroraWU| | 2022-11-24 15:41 | 只看该作者
请教一下,能否用DMA来控制PMW输出脉冲个数?我用435,试了一下,有时候会多输出一个脉冲(不一定完整),不知道这个脉冲怎么去除,没有啥规律性,会偶尔触发。

使用特权

评论回复
5
JhonsonChou|  楼主 | 2022-11-25 11:43 | 只看该作者
AuroraWU 发表于 2022-11-24 15:41
请教一下,能否用DMA来控制PMW输出脉冲个数?我用435,试了一下,有时候会多输出一个脉冲(不一定完整), ...

控制PWM输出脉冲个数就没必要用DMA了,DMA是用来修改脉冲周期或占空比这类参数的,你要输出指定数量的脉冲,直接用高级定时器的单脉冲模式+重复计数功能即可

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

16

帖子

0

粉丝