恩,对的,50us定频出发soc,这部分的设置如下:

EPwm1Regs.ETSEL.bit.SOCAEN = 1; // Enable SOC on A group

EPwm1Regs.ETSEL.bit.SOCASEL = ET_CTR_ZERO; // Select SOC from zero

EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Generate pulse on 1st event

void sInitADC(void)

{

extern void DSP28x_usDelay(INT32U Count);

EALLOW;

SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;

(*Device_cal)();

EDIS;

EALLOW;

AdcRegs.ADCCTL1.bit.ADCBGPWD = 1; // Power ADC BG

AdcRegs.ADCCTL1.bit.ADCREFPWD = 1; // Power reference

AdcRegs.ADCCTL1.bit.ADCPWDN = 1; // Power ADC

// AdcRegs.ADCCTL1.bit.ADCENABLE = 1; // Enable ADC

AdcRegs.ADCCTL1.bit.ADCREFSEL = 1; // Select external BG

EDIS;

DELAY_US(5000L); // Delay 5ms before converting ADC channels

EALLOW;

AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;//interrupt pulse generation occurs 1 cycle prior to

AdcRegs.INTSEL1N2.all = 0x002E;//0x002D; //Enable ADCINT1; EOC14 trigger ADCINT1

AdcRegs.ADCSOC0CTL.all = 0x2849; //channel A1, EPWM6SOCA trigger SOC //此通道未用

AdcRegs.ADCSOC1CTL.all = 0x2849; //channel A1, EPWM6SOCA trigger SOC //此通道未用

AdcRegs.ADCSOC2CTL.all = 0x2849; //channel A1, EPWM6SOCA trigger SOC//0x288f; //channel A2, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC3CTL.all = 0x28C9; //channel A3, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC4CTL.all = 0x2909; //channel A4, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC5CTL.all = 0x2889; //channel A2, EPWM6SOCA trigger SOC//0x294f; //channel A5, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC6CTL.all = 0x2989; //channel A6, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC7CTL.all = 0x29C9; //channel A7, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC8CTL.all = 0x2A09; //channel B0, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC9CTL.all = 0x2889; //channel A2, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC10CTL.all = 0x2A89; //channel B2, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC11CTL.all = 0x2AC9; //channel B3, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC12CTL.all = 0x2A49; //channel B1, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC13CTL.all = 0x2B09; //channel B4, EPWM6SOCA trigger SOC//0x2B4f; //channel B5, EPWM6SOCA trigger SOC

AdcRegs.ADCSOC14CTL.all = 0x2A09; //channel B0, EPWM6SOCA trigger SOC//0x2B8f; //channel B6, EPWM6SOCA trigger SOC

// AdcRegs.ADCSOC15CTL.all = 0x2BCA; //channel B7, EPWM6SOCA trigger SOC

EDIS;

// DELAY_US(20L); //20us delay is required before performing the first ADC conversion

DELAY_US(1000L); //1ms delay is required before performing the first ADC conversion

}

我觉得如果中断没有执行完,那么100us是可以理解的,问题是第一章图那样,GPIO竟然几个ms才翻转一次。