Part Number: TMS320F28027
Other Parts Discussed in Thread: C2000WARE
adc_isr1中,正常PWM和ADC一比一触发时,这个变量应该维持住0或1。但只要放开注释的那几行,PWM1_Cnt就会一直往上涨。ADC中断的触发次数会变的很少。
int32 PWM1_Cnt=0;
__interrupt void epwm1_isr(void)
{
++PWM1_Cnt;
EPwm1Regs.ETCLR.bit.INT = 1; // Clear INT flag for this timer
PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Acknowledge this interrupt to receive more interrupts from group 3
}
__interrupt void adc_isr1(void)
{
Uint32 power;
Uint32 r1,r2,r3;
--PWM1_Cnt;
/*
for (r1=0; r1<10; ++r1)
asm(" nop");
r1 = AdcResult.ADCRESULT1;
u = r1*1048576; //
r1 = r1<<20;
*/
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1 flag reinitialize for next SOC
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
return;
}