Interrupts are holding up other operations

Hi,

I have an LPC2378 connected to a MAX3420E USB chip via SPI. I am using an external interrupt to alert the uC whenever it needs service, however, this interrupt has taken over my chip operation, none of the code in my main while loop can run!

What can be doing this? I've tried changing the IRQ priority with no avail.

snippet from main:

while (1)
{
printf (".");
}
// EINT3 Interrupt handler--MAX3420E INT pin
void INT3420 (void) __irq
{
service_irqs();         // Do the USB thing
EXTINT      = 0x03;    // Clear EINT3 interrupt flag
VICVectAddr = 0xFF;     // Dummy write to indicate end of interrupt service
}


DWORD EINTInit( void )
{
  PINSEL4 |= 0x4000000;
  IO2_INT_EN_F = 0xFF;
  EXTMODE = EINT3_EDGE;
  EXTPOLAR = 0x03;

  if ( install_irq(EINT3_INT,(void *)INT3420,LOWEST_PRIORITY )==FALSE)
  {
        return (FALSE);
  }
  return( TRUE );
}

Parents Reply Children
No data
More questions in this forum