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.

关于28M35中ADC配置的问题



太阳能开发套件的程序中有一段关于ADC配置的程序我看不懂,注释也看不懂,您能帮我解释一下么

// SOC for DCDC Boost MPPT

EPwm3Regs.ETSEL.bit.SOCAEN = 1;

EPwm3Regs.ETSEL.bit.SOCASEL = ET_CTR_PRD ; // Use PRD event as trigger for ADC SOC

   EPwm3Regs.ETPS.bit.SOCAPRD = ET_2ND;        // Generate pulse on 2nd event    

#define Ileg1_fb Adc1Result.ADCRESULT1

#define Ileg2_fb Adc1Result.ADCRESULT2

#define Vac_FB Adc1Result.ADCRESULT3

#define Ipv_FB Adc1Result.ADCRESULT5

#define Vpv_FB Adc1Result.ADCRESULT6

#define Vboost_FB   Adc1Result.ADCRESULT7

#define Iboostsw_FB Adc2Result.ADCRESULT1

#define LIGHT_FB Adc2Result.ADCRESULT2

// ADC Channel Selection

ChSel1[0] = 4; //ADC1 SOC 0 -> Ileg1-fb   -> ADC1-A4 on F28M3x rev 1.0 -> ADC-A4 {Piccolo}, dummy

ChSel1[1] = 4; //ADC1 SOC 0 -> Ileg1-fb   -> ADC1-A4 on F28M3x rev 1.0 -> ADC-A4 {Piccolo}

ChSel1[2] = 6; //ADC1 SOC 1 -> Ileg2-fb   -> ADC1-A6 on F28M3x rev 1.0 -> ADC-A6 {Piccolo}

ChSel1[3] = 7; //ADC1 SOC 4 -> Vac-fb     -> ADC1-A7 on F28M3x rev 1.0 -> ADC-A5 {Piccolo}

ChSel1[4] = 0; //ADC1 SOC 2 -> Ipv-fb     -> ADC1-A0 on F28M3x rev 1.0 -> ADC-A0 {Piccolo}, dummy

ChSel1[5] = 0; //ADC1 SOC 2 -> Ipv-fb     -> ADC1-A0 on F28M3x rev 1.0 -> ADC-A0 {Piccolo}

ChSel1[6] = 8; //ADC1 SOC 3 -> Vpv-fb     -> ADC1-B0 on F28M3x rev 1.0 -> ADC-A1 {Piccolo}

ChSel1[7] = 2; //ADC1 SOC 5 -> Vboost-fb  -> ADC1-A2 on F28M3x rev 1.0 -> ADC-A2 {Piccolo}

// ADC Trigger Selection

TrigSel1[0] = 6; // ADC1 SOC 0 -> Ileg1-fb, dummy

TrigSel1[1] = 6; // ADC1 SOC 0 -> Ileg1-fb

TrigSel1[2] = 6; // ADC1 SOC 1 -> Ileg2-fb

TrigSel1[3] = 6; // ADC1 SOC 4 -> Vac-fb

TrigSel1[4] = 5; // ADC1 SOC 2 -> Ipv-fb , dummy

TrigSel1[5] = 5; // ADC1 SOC 2 -> Ipv-fb

TrigSel1[6] = 5; // ADC1 SOC 3 -> Vpv-fb  

TrigSel1[7] = 5; // ADC1 SOC 5 -> Vboost-fb

// Let Trigger 1 be used for the Boost Control and the Trigger 2 be used for the inverter control

// Configure the CIB triggers (Note this needs to be done before the ADC SOC trigger selection)

EALLOW;  

AnalogSysctrlRegs.TRIG1SEL.all = ADCTRIG_EPWM3_SOCA; // EPWM3SOCA to TRIGGER 1 of the analog subsystem

AnalogSysctrlRegs.TRIG2SEL.all = ADCTRIG_EPWM1_SOCA; // EPWM1SOCA to Trigger 2 of the analog subsystem

EDIS;

ADC_CNF(1, ChSel1, TrigSel1, ACQPS1);

// ADC Channel Selection

ChSel2[0] = 6; //ADC2 SOC 0 -> Iboostsw-fb-> ADC2-A6 on F28M3x rev 1.0 -> ADC-B6 {Piccolo}

ChSel2[1] = 6; //ADC2 SOC 0 -> Iboostsw-fb-> ADC2-A6 on F28M3x rev 1.0 -> ADC-B6 {Piccolo}

ChSel2[2] = 0; //ADC2 SOC 1 -> Vlight-fb  -> ADC2-A0 on F28M3x rev 1.0 -> ADC-B0 {Piccolo}

// ADC Trigger Selection

TrigSel2[0] = 5; // ADC2 SOC 0 -> Iboostsw-fb, dummy

TrigSel2[1] = 5; // ADC2 SOC 0 -> Iboostsw-fb

TrigSel2[2] = 6; // ADC2 SOC 2 -> Vlight-fb

ADC_CNF(2, ChSel2, TrigSel2, ACQPS2);

// Digital Power CLA(DP) library initialisation

DPL_Init();

代码粘贴乱的话请看一下图片吧