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.
Dear everyone:
My goal is to trigger DMA to transfer one data at a time and, on the next trigger, transfer the next data. However, I have encountered a problem.
The SOCA signal generated by EPWM can continuously occur, and DMA interrupts can also occur. I have also configured the transfer step for DMA. However, the DMA data transfer only transfers the first data from the source,I feel that after transferring one data, the source address is not incremented, so it keeps transferring the first data. But I have set the step, which doesn't make sense.
volatile Uint16 DMABuf1[25]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; volatile Uint16 DMABuf2[1]; DMACH1AddrConfig(DMABuf2,DMABuf1); DMACH1BurstConfig(0,0,0); DMACH1TransferConfig(0,1,0); DMACH1WrapConfig(25,0,1,0); DMACH1ModeConfig(0x12,PERINT_ENABLE,ONESHOT_ENABLE,CONT_ENABLE,SYNC_DISABLE,SYNC_SRC,OVRFLOW_DISABLE,SIXTEEN_BIT,CHINT_END,CHINT_ENABLE); interrupt void local_DINTCH1_ISR(void) // DMA Channel 1 { i++; EPwm1Regs.ETCLR.bit.SOCA=1; PieCtrlRegs.PIEACK.bit.ACK7 = 1; }