我用两路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这个对我很有帮助,真的感谢你,以前你也帮助我解决了问题,真的十分感谢