主题中讨论的其他器件:C2000WARE
大家好,我正在尝试使 DMA 正常工作,首先我要尝试从一个阵列传输到另一个阵列。 我可以看到 SRC_ADDR_ACTIVE 和 DST_ADDR_ACTIVE 递增、但我看不到这些值发生了变化。
如果以下代码中有任何问题、有人可以帮助我吗
下面是代码
初始化:
===========================
DMASSource =(volatile UINT16 *) dutyCyclPercentSine; 
DMADest =(易失性 UINT16 *)结果; 
EALLOW; 
DMACTRL.bit.hardreset = 1; 
_asm (" NOP"); 
DmaRegs.DEBUGCTRL.bit.FREE = 1;
DmaRegs.CH1.SRC_ADDR_SHADDASH =(uint32) DMASSOURCE; 
DmaRegs.CH1.SRC_beg_ADDR_SHADDASH =(uint32) DMASource; 
DmaRegs.CH1.dst_ADDR_SHADDow =(uint32) DMADest; 
DmaRegs.CH1.dst_beg_ADDR_SHADD=(uint32) DMADest; 
//通道1 
DmaRegs.ch1.burse_size.all = 0; 
DmaRegs.CH1.SRC_BURST_STEP = 1; 
DmaRegs.CH1.dst_burst_step = 1; 
DMARegs.CH1.TRANSF_SIZE = 9; 
DMARegs.CH1.SRC_TRANSFER_STEP = 1; 
DmaRegs.CH1.dst_transfer_step = 1; 
DmaClaSrcSelRegs.DMACHSRCSEL1.bit.CH1 = 0; 
DMARegs.CH1.MODE.BIT.PERINTSEL = 1;
DMaRegs.CH1.MODE.BIT.PERINTE = 1; 
DMaRegs.CH1.MODE.BIT.CHINTE = 0; 
DmaRegs.CH1.MODE.bit.OneShot = 0; 
DMaRegs.CH1.MODE.BIT.Continous = 0; 
DMARegs.CH1.MODE.BIT.DATASIZE = 0; 
DMaRegs.CH1.MODE.BIT.CHINTMODE = 0; 
DMaRegs.CH1.MODE.BIT.CHINTE = 0; 
CpuSysRegs.SECMSEL.bit.PF2SEL = 1; 
CpuSysRegs.SECMSEL.bit.PF1SEL = 1; 
DmaRegs.ch1.control.bit.run = 1; 
EDIS;
===========================
在 main.c 中
INT 计数= 0; 
while (1) 
{ 
count++; 
if (count == 0xFFFF) 
{ 
EALLOW; 
DmaRegs.ch1.control.bit.PERINTFRC = 1; 
// EPwm1Regs.CMPA.bit.CMPA = 1500; 
EDIS; 
计数= 0; 
// RunSPWM(); 
} 
}
 
				 
		 
					