Tool/software: Code Composer Studio
Hi,
My English is not good, please understanding.
My example code below,
I want to check the delay from ePWM1A_SOCA to ADC_interrupt after conversion.
I think, from this code, EOC for adc_isr interrupt is EOC15, so i set the register AdcRegs.INTSEL1N2.bit.INT1SEL = 15;
I think, if i set 16kHz pwm frequency then, the interrupt frequency must be 16kHz
But i check the value of pulse (when start adc_isr a = 1; a = 0 makes a pulse) by scope,
When i set the INT1SEL = 7, the pulse is 16kHz, but i set the INT1SEL = 15, the pulse is 150kHz.
In Simultaneously mode, the conversion of ADCINA7 and ADCINB7 is done, only EOC7 occur? or my code is wrong?
If only EOC7 occur, EOC15 is always 1?
I'm waiting for your answer.
thank you.
//My Example Code//
// Included Files
//
#include "DSP28x_Project.h"
//
// Function Prototypes
//
__interrupt void adc_isr(void);
void Adc_Config(void);
//
// Globals
//
Uint16 LoopCount;
Uint16 ConversionCount;
Uint16 Voltage0;
Uint16 Voltage1;
Uint16 Voltage2;
Uint16 Voltage3;
Uint16 Voltage4;
Uint16 Voltage5;
Uint16 Voltage6;
Uint16 Voltage7;
Uint16 Voltage8;
Uint16 Voltage9;
Uint16 Voltage10;
Uint16 Voltage11;
Uint16 Voltage12;
Uint16 Voltage13;
Uint16 Voltage14;
Uint16 Voltage15;
Uint16 a;
//
// Main
//
void main(void)
{
DINT;
IER = 0x0000;
IFR = 0x0000;
InitSysCtrl();
InitPieCtrl();
InitPieVectTable();
EALLOW;
PieVectTable.ADCINT1 = &adc_isr;
EDIS;
PieCtrlRegs.PIEIER1.bit.INTx1 = 1;
IER |= M_INT1;
InitAdc();
AdcOffsetSelfCal();
Adc_Config();
LoopCount = 0;
ConversionCount = 0;
EINT;
ERTM;
for(;;)
{
LoopCount++;
}
}
//
// Functions
//
__interrupt void adc_isr(void)
{
a = 1;
a = 0;
Voltage0 = AdcResult.ADCRESULT0;
Voltage1 = AdcResult.ADCRESULT1;
Voltage2 = AdcResult.ADCRESULT2;
Voltage3 = AdcResult.ADCRESULT3;
Voltage4 = AdcResult.ADCRESULT4;
Voltage5 = AdcResult.ADCRESULT5;
Voltage6 = AdcResult.ADCRESULT6;
Voltage7 = AdcResult.ADCRESULT7;
Voltage8 = AdcResult.ADCRESULT8;
Voltage9 = AdcResult.ADCRESULT9;
Voltage10 = AdcResult.ADCRESULT10;
Voltage11 = AdcResult.ADCRESULT11;
Voltage12 = AdcResult.ADCRESULT12;
Voltage13 = AdcResult.ADCRESULT13;
Voltage14 = AdcResult.ADCRESULT14;
Voltage15 = AdcResult.ADCRESULT15;
ConversionCount++;
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
PieCtrlRegs.PIEACK.bit.ACK1 = 1;
}
void Adc_Config(void)
{
EALLOW;
AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 1;
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdcRegs.INTSEL1N2.bit.INT1E = 1;
AdcRegs.INTSEL1N2.bit.INT1CONT = 0;
AdcRegs.INTSEL1N2.bit.INT1SEL = 15;
AdcRegs.ADCSOC0CTL.bit.CHSEL = 0;
AdcRegs.ADCSOC2CTL.bit.CHSEL = 1;
AdcRegs.ADCSOC4CTL.bit.CHSEL = 2;
AdcRegs.ADCSOC6CTL.bit.CHSEL = 3;
AdcRegs.ADCSOC8CTL.bit.CHSEL = 4;
AdcRegs.ADCSOC10CTL.bit.CHSEL = 5;
AdcRegs.ADCSOC12CTL.bit.CHSEL = 6;
AdcRegs.ADCSOC14CTL.bit.CHSEL = 7;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN0 = 1;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN2 = 1;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN4 = 1;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN6 = 1;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN8 = 1;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN10 = 1;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN12 = 1;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN14 = 1;
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 5;
AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 5;
AdcRegs.ADCSOC4CTL.bit.TRIGSEL = 5;
AdcRegs.ADCSOC6CTL.bit.TRIGSEL = 5;
AdcRegs.ADCSOC8CTL.bit.TRIGSEL = 5;
AdcRegs.ADCSOC10CTL.bit.TRIGSEL = 5;
AdcRegs.ADCSOC12CTL.bit.TRIGSEL = 5;
AdcRegs.ADCSOC14CTL.bit.TRIGSEL = 5;
AdcRegs.ADCSOC0CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC1CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC2CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC3CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC4CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC5CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC6CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC7CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC8CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC9CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC10CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC11CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC12CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC13CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC14CTL.bit.ACQPS = 6;
AdcRegs.ADCSOC15CTL.bit.ACQPS = 6;
EPwm1Regs.ETSEL.bit.SOCAEN = 1;
EPwm1Regs.ETSEL.bit.SOCASEL = 4;
EPwm1Regs.ETPS.bit.SOCAPRD = 1;
EPwm1Regs.CMPA.half.CMPA = 0x0080;
EPwm1Regs.TBPRD = 0xFFFF;
EPwm1Regs.TBCTL.bit.CTRMODE = 0;
}
