您好!
我的客户正在使用 DMA 设置 PWM 的占空比。
它需要3通道 PWM、而这需要3通道 DMA。
但是、MSPM0仅支持1个全功能通道(DMA0)、支持重复传输模式。
要将 DMA 用于 PWM 占空比设置、需要重复传输模式。
因此、客户希望使用三 PWM 占空比寄存器来交替使用 DMA0通道。
DMA0的目标地址按照 PWM0、PWM1、PWM2、PWM0的顺序重复旋转。
在设置 DMA 时、他会尝试执行以下代码。
重复下面的例程。
{
//为 PWM0配置 DMA
禁用 DMA
DMA 设置
DL_DMA_setDestAddr (DMA、DMA_CH0_CHAN_ID、PWM_0Ch_Duty_reg_addr)
启用 DMA
//为 PWM1配置 DMA
禁用 DMA
DMA 设置
DL_DMA_setDestAddr (DMA、DMA_CH0_CHAN_ID、PWM_1CH_DUTY_REG_addr)
启用 DMA
//为 PWM2配置 DMA
禁用 DMA
DMA 设置
DL_DMA_setDestAddr (DMA、DMA_CH0_CHAN_ID、PWM_2CH_DUTY_REG_addr)
启用 DMA
}
这个概念是可行的吗?
这个概念会增加 CPU 负担吗?
谢谢。