需求 芯片型号为TMS320F280049RSH 56管脚,想通过A2_B6_PGA1_OF(pin8) 、C0_PGA1_IN 、C2_PGA3_IN 、C3_PGA4_IN 管脚 采集三相电流和母线电压; 采样方式 timer0中断期间,采用软件触发adc采样,轮询方式读取数据; 问题 程序一直处于 while(ADC_getInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1) == false){}循环中
以电流Iu采集为例,说明当前设置
1 CPU级中断 IER |= M_INT1;
2 PIE级中断 PieCtrlRegs.PIEIER1.bit.INTx1=1; // 使能ADCA Interrupt1 PieVectTable.ADCA1_INT=&ADCA1_ISR;
3 ADC设置
ADC_setVREF(ADCA_BASE, ADC_REFERENCE_INTERNAL, ADC_REFERENCE_3_3V);
ADC_setPrescaler(ADCA_BASE, ADC_CLK_DIV_4_0);
ADC_setInterruptPulseMode(ADCA_BASE, ADC_PULSE_END_OF_CONV);
ADC_enableConverter(ADCA_BASE);
DEVICE_DELAY_US(2000);
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_SW_ONLY,ADC_CH_ADCIN2, 10); ADC_setInterruptSource(ADCA_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER0);
ADC_enableInterrupt(ADCA_BASE, ADC_INT_NUMBER1); // 设置ADCINTx.INTEN=1
ADC_clearInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1); 4 timer0中断 ADC_forceSOC(ADCA_BASE, ADC_SOC_NUMBER0);
while(ADC_getInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1) == false)
{
}
ADC_clearInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1); 麻烦大家方便时帮我看一看,问题出现在什么地方,谢谢!