[技术问答] 请教M483的DMA不能自动加载的问题,导致脉冲不能同步,感谢

[复制链接]
1948|7
 楼主| 汽车电子 发表于 2021-5-22 10:40 | 显示全部楼层 |阅读模式
本帖最后由 汽车电子 于 2021-5-22 14:18 编辑

如题,需要使用DMA传输600个数据到PWM比较寄存器。
传输完600个数据后,能自动重传吗? 没找到解决办法,哪位大神做过?分享一下,感谢!
目前是传输完之后中断,在中断里加载数据。用示波器发现还有2个数据未传完就中断了,是不是防止时间滞后的?在中断里提前加载?
理论上可防止滞后,但实际上不行啊,20秒之后,输出脉冲就不同步了,差300uS之多。
1526560a86ef655c3c.png
 楼主| 汽车电子 发表于 2021-5-22 10:41 | 显示全部楼层
开始脉冲是同步的
6169260a86f679a7f8.png
 楼主| 汽车电子 发表于 2021-5-22 10:42 | 显示全部楼层
后面不同步了 4812560a86f9c28906.png
 楼主| 汽车电子 发表于 2021-5-22 10:45 | 显示全部楼层
初始化代码
7464260a870406cff6.png
 楼主| 汽车电子 发表于 2021-5-22 10:55 | 显示全部楼层
DMA中断函数
4047860a87285c002f.png
 楼主| 汽车电子 发表于 2021-5-22 11:15 | 显示全部楼层
现在也不确定是否是因为需要程序加载而产生的滞后,理论上不会,因为提前中断重载的。为什么几个通道同步功能不起作用呢?

4773060a875ca036b0.png

jasontu 发表于 2021-5-24 10:45 | 显示全部楼层
请用PDMA scatter mode. 中断後软体加载会花一些时间。
PDMA scatter mode. 是用硬件存取的方式
杨寅辉 发表于 2021-5-24 11:10 | 显示全部楼层
理论上都加载完毕才会中断的呀,为什么没加载进去呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:车联网

366

主题

2058

帖子

5

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