AnsweredAssumed Answered

Issue with IRQSTA on ADUC7026

Question asked by chrisfilm on Jun 8, 2011
Latest reply on Jun 21, 2011 by MMA

Hi,

 

I am using an interrupt service routine to time 2 outputs from the PLA. Both outputs go to a digital output and raise an IRQ. In the ISR I check which PLA_IRQ raised the interrupt, but IRQSTA is always 0 zero?! This doesn't make sense to me, as no other interrupts are enabled, so the routine can only be entered if one of the PLA IRQs was raised... e.g.

 

void my_ISR(void)

{

     unsigned long IRQSTATUS = IRQSTA;

 

     // This routine is entered about once per second corresponding to my digital test input + PLA block

 

     if (IRQSTATUS & PLA_IRQ0_BIT)
     {

          // This is never entered

     }

     if (IRQSTATUS & PLA_IRQ1_BIT)

     {

          // This is never entered

     }

     IRQCLR = 0x00FFFFFF; // Clear all IRQs to make sure only PLA irqs are enabled

     IRQEN = PLA_IRQ0_BIT | PLA_IRQ1_BIT;

}

 

The my_ISR function is entered at about the right rate for the source of the interrupts I'm using, and I write to the serial port to check some variables in the routine each time. It prints out some info, and IRQSTATUS is always 0 ... how can this be?

 

Many thanks,

- Chris

Outcomes