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.
1、AD由PWM6的SOCB触发
InitAdc();
EALLOW;
AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 0; // overlap mode
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; // ADCINT1 trips after AdcResults latch
AdcRegs.ADCCTL1.bit.TEMPCONV = 0; // ADCINA5 采集外部
AdcRegs.INTSEL1N2.bit.INT1E = 1; // Enabled ADCINT1
AdcRegs.INTSEL1N2.bit.INT1CONT = 0; // Disable ADCINT1 Continuous mode
AdcRegs.INTSEL1N2.bit.INT1SEL = 10; // setup EOC10 to trigger ADCINT1 to fire
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
AdcRegs.ADCSOC0CTL.bit.CHSEL = ADC_I_L1; //ADCINA3
AdcRegs.ADCSOC1CTL.bit.CHSEL = ADC_I_L2; //ADCINB5
AdcRegs.ADCSOC2CTL.bit.CHSEL = ADC_I_L3; //ADCINB0
AdcRegs.ADCSOC3CTL.bit.CHSEL = ADC_I_LAC; //ADCINA2
AdcRegs.ADCSOC4CTL.bit.CHSEL = ADC_I_BUS; //ADCINB1
AdcRegs.ADCSOC5CTL.bit.CHSEL = ADC_V_BUS; //ADCINA5
AdcRegs.ADCSOC6CTL.bit.CHSEL = ADC_V_BAT; //ADCINB4
AdcRegs.ADCSOC7CTL.bit.CHSEL = ADC_V_OFFGRID; //ADCINA1
AdcRegs.ADCSOC8CTL.bit.CHSEL = ADC_V_Grid; //ADCINA4
AdcRegs.ADCSOC9CTL.bit.CHSEL = ADC_tempA; //ADCINA6
AdcRegs.ADCSOC10CTL.bit.CHSEL = ADC_tempB; //ADCINA7
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 0x10; // set SOC0 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 0x10; // set SOC1 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 0x10; // set SOC2 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC3CTL.bit.TRIGSEL = 0x10; // set SOC3 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC4CTL.bit.TRIGSEL = 0x10; // set SOC4 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC5CTL.bit.TRIGSEL = 0x10; // set SOC5 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC6CTL.bit.TRIGSEL = 0x10; // set SOC6 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC7CTL.bit.TRIGSEL = 0x10; // set SOC7 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC8CTL.bit.TRIGSEL = 0x10; // set SOC8 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC9CTL.bit.TRIGSEL = 0x10; // set SOC9 start trigger on EPWM6 SOCB
AdcRegs.ADCSOC10CTL.bit.TRIGSEL = 0x10; // set SOC10 start trigger on EPWM6 SOCB
2、DMA由ADCINT1触发
DMADest = &ADC[DMAaddress].all; //Point DMA destination to the beginning of the array
DMASource = &AdcResult.ADCRESULT0; //Point DMA source to ADC address
DMACH2AddrConfig(DMADest,DMASource);
DMACH2BurstConfig(15,1,SAMPLENUM);
DMACH2TransferConfig(SAMPLENUM-1,0,0);
DMACH2WrapConfig(0,0,0,1);
DMACH2ModeConfig(DMA_SEQ1INT,PERINT_ENABLE,ONESHOT_DISABLE,CONT_ENABLE,SYNC_DISABLE,SYNC_SRC,
OVRFLOW_DISABLE,SIXTEEN_BIT,CHINT_END,CHINT_DISABLE);
StartDMACH2();
3、28069的资料中说DMA可以自动清除ADCINT1中断,但是我的程序却不能自动清除,手动清除一次ADCINT1,DMA会工作一次,帮忙看看是哪里设置错误了,这段程序是从28335移植过来的,在28335里面没有问题。
4、用的ccs版本是8.0.0.00016 ,编译器版本是18.1.1.LTS