Other Parts Discussed in Thread: C2000WARE
dear everyone:
我在使用epwm和dma产生sin波形时,发现波形有很多毛刺,思考了一下怀疑是源数据精度的问题,之前的数据都经过取整,这次想将小数通过dma传进cmp寄存器里,但是实现不了。
volatile float DMABuf1[25]={50.0, 57.1, 64.3, 71.4, 78.6, 85.7, 92.9, 100.0, 92.9, 85.7, 78.6, 71.4, 64.3, 57.1, 50.0, 42.9, 35.7, 28.6, 21.4, 14.3, 7.1, 0.0, 7.1, 14.3, 21.4, 28.6};
volatile Uint16 *BufAdd =DMABuf1;
DMACH1_Init(CMPA,BufAdd);
interrupt void local_DINTCH1_ISR(void) // DMA Channel 1
{
i++;
if(i<25)
BufAdd++;
else
{
BufAdd = DMABuf1;
i=-1;
}
DMACH1AddrConfig(CMPA,BufAdd);
EPwm1Regs.ETCLR.bit.SOCA = 1;
DmaRegs.CH1.CONTROL.bit.RUN=1;
PieCtrlRegs.PIEACK.bit.ACK7 = 1;
}
改做如何修改呢