Microchip
直播中

李燕梅

7年用户 189经验值
私信 关注
[问答]

有没有一种方法让DMA信道连续触发直到小区传输完成

大家好,我有一个SSD1963连接到我的PIC32MX570F512L PMP端口。我有一个用例,用于使用DMA将单个16位值从存储器重复地写入PMDOUT寄存器。用例是这样的,每当需要将一种颜色写入大量像素(例如,背景填充)时,我希望能够将DMA设置为从单个内存位置重复写入PMDOUT寄存器。直到CELL_COMPLETE DMA中断被触发,DMA一直写入PMDOUT寄存器。目前,我的源大小和目标大小都是2(16位颜色值和PMDOUT寄存器),并且在1次传输(块传输)之后,信道自动复位,重新绑定,准备好f或者启动另一个传输的另一个触发器,但是为了发生以下传输,应该设置CFORCE,或者应该触发其他中断。我知道我可以通过检查块传输完成事件来处理这个问题,然后再次设置CFORCE,但是这类似于在主循环中写入PMP端口,我想避免这种情况,因为它会消耗大量的CPU时间。在两个信道之间某种自触发环路来实现这一点。有没有一种方法让DMA信道连续触发直到小区传输完成?谢谢,奥斯丁

回帖(4)

于姝斐

2020-5-6 11:19:47
呃,那不是我想听到的…但是谢谢你这么快回复我。在我的例子中,等待状态非常低。因为屏幕是800×480。我计划在屏幕上绘制大部分内容,而不是尽可能从(慢)SD卡中获取它们。从那说起。从那里我可以计算发送到PMDOUT的字节数。应该大大减少我的中断开销。我还没有检查过,但是当通道完成块传输时,CPTR会重置吗?编辑:是的,CPTR在块传输完成时复位。
举报

李子跃

2020-5-6 11:39:45
嗯,我想建议你的解决方案(DMA到中间缓冲区),虽然没有链接。没有想到这个:-)我喜欢它!).
举报

h1654156194.5000

2020-5-6 11:45:35
嗨,奥斯丁,你能分享你正在使用的代码吗?我非常需要它。请与我分享密码…?
举报

一个人跳水

2020-12-11 17:01:10
用瑞佑的RA8889就可以了,有DMA功能,直接把FLASH的数据调来出显示,不用通过MCU来读,切图速度也更快,动画和视频都容易实现
举报

更多回帖

发帖
×
20
完善资料,
赚取积分