This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我正在尝试使用 DMA 更新 PWM 的 CMPA 值、以便生成正弦波、而无需使用中断。
我正在使用一个包含32个 uint16值的数组、通过使用 DMA 更新 CMPA 值。
当 TBCTR 为零时、我要使用 ePWM SOCA 触发 DMA。
我只想在每次 SOCA 被触发时将一个16位字传输到 CMPA 寄存器、而在传输完成后移动到数组中的下一个索引。
传输32个值(每个 SOCA 1个值)后、我想回绕到阵列的开头。
在尝试实现这一点时、我遇到了几个问题:
源地址似乎更新正确、但从未写入目的地址。
我也不能完全理解换行-似乎你能够在 x 个突发后包装地址、而不是像我尝试实现的那样在 x 个传输后包装地址。
我找到了这个问题。
DMA 正在读取的数组需要存储在 GS RAM 中。
一旦我在 GS RAM 中对数组进行了初始化、我的代码就能正常工作。