TI中文支持网
TI专业的中文技术问题搜集分享网站

触发ADC中断为什么AdcaRegs.ADCINTFLGCLR.bit.ADCINT2不能清零

我用两路epwm分别触发一组ADC中断,中断程序如下:

interrupt void adca1_isr(void)
{
caiyangshuzhi = AdcaResultRegs.ADCRESULT0;
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; 
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
interrupt void adca2_isr(void)
{
vout= AdcaResultRegs.ADCRESULT1;
AdcaRegs.ADCINTFLGCLR.bit.ADCINT2=1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP10;}

发现程序在运行时只能响应adca1_isr中断; adca2_isr中断只有第一次可以进入,进去后AdcaRegs.ADCINTFLGCLR.bit.ADCINT2这个中断标志位不能清零导致以后adca2_isr中断不能响应。

请问怎么解决?

mangui zhang:AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//enable INT1 flag (如果不配置这里,那么ADC采样完成后中断flag不会置位,所以必须配置为1)AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //make sure INT1 flag is cleared

我用两路epwm分别触发一组ADC中断,中断程序如下:

interrupt void adca1_isr(void)
{
caiyangshuzhi = AdcaResultRegs.ADCRESULT0;
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; 
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
interrupt void adca2_isr(void)
{
vout= AdcaResultRegs.ADCRESULT1;
AdcaRegs.ADCINTFLGCLR.bit.ADCINT2=1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP10;}

发现程序在运行时只能响应adca1_isr中断; adca2_isr中断只有第一次可以进入,进去后AdcaRegs.ADCINTFLGCLR.bit.ADCINT2这个中断标志位不能清零导致以后adca2_isr中断不能响应。

请问怎么解决?

user5913602:

回复 mangui zhang:

这些我都配置过了谢谢你

我用两路epwm分别触发一组ADC中断,中断程序如下:

interrupt void adca1_isr(void)
{
caiyangshuzhi = AdcaResultRegs.ADCRESULT0;
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; 
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
interrupt void adca2_isr(void)
{
vout= AdcaResultRegs.ADCRESULT1;
AdcaRegs.ADCINTFLGCLR.bit.ADCINT2=1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP10;}

发现程序在运行时只能响应adca1_isr中断; adca2_isr中断只有第一次可以进入,进去后AdcaRegs.ADCINTFLGCLR.bit.ADCINT2这个中断标志位不能清零导致以后adca2_isr中断不能响应。

请问怎么解决?

user5913602:

回复 Susan Yang:

Susan这个对我很有帮助,真的感谢你,以前你也帮助我解决了问题,真的十分感谢

赞(0)
未经允许不得转载:TI中文支持网 » 触发ADC中断为什么AdcaRegs.ADCINTFLGCLR.bit.ADCINT2不能清零
分享到: 更多 (0)