Hi everyone:
I want to sense Iav, Ipeak like figure to calculate subtraction. I set ePWM SOC trigger 2 event. But how to set adc_isr.
ePWM setting:
// Setting the A/D Conversion
EPwm1Regs.ETSEL.bit.SOCAEN = 1; // Enable SOC on A group
EPwm1Regs.ETSEL.bit.SOCASEL = 1; // Select SOC from from Zero on upcount
EPwm1Regs.ETSEL.bit.SOCASEL = 100; // TBPRD=COMA
EPwm1Regs.ETPS.bit.SOCACNT = 2; // 2 trigger event
EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Generate INT on first event
interrupt setting:
void SetInterrupt(void)
{
EALLOW;
PieVectTable.ADCINT = & adc_isr;
EDIS;
IER = M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx6 = 1;
PieCtrlRegs.PIECTRL.bit.ENPIE = 1;
EINT;
ERTM;
}
__interrupt void adc_isr(void)
{
Vo=AdcRegs.ADCRESULT0 >>4;
Vin=AdcRegs.ADCRESULT1 >>4;
IL=AdcRegs.ADCRESULT2 >>4;
PIcontroller();
EPwm1Regs.CMPA.half.CMPA = PFC_Duty;
// Reinitialize for next ADC sequence
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
return;
}
Thanks