AnsweredAssumed Answered

Grouped External Interrupt

Question asked by Cleon Brown on May 17, 2018

I am using LPC1833 Gruop Interrupt, I have 16 external interrupt spread across 2 ports (port 5 and 2) grouped into in one group (GROUP 0). They are pullup resistors on all 16 inputs and it works fine; however, if there is a bad input that pull any of the input low it prevents the microcontroller from getting additional interrupts on the remaining pins regardless of their state.

 

 

is this a limitation of the group interrupt?

 

Please see code below:

 


void Configure_GroupInt_GpIOs(void)
{
      uint8_t i;

      for( i=0; i <= 15 ;i++ )
      {
            if(i == 7)
            {
                  Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, 5, 12);
                  Chip_GPIOGP_SelectLowLevel (LPC_GPIOGROUP, 0, 5, 1 << 12);
                  Chip_GPIOGP_EnableGroupPins(LPC_GPIOGROUP, 0, 5, 1 << 12);
            }
            else
            {
                  Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, 2, i);
                  Chip_GPIOGP_SelectLowLevel (LPC_GPIOGROUP, 0, 2, 1 << i);
                  Chip_GPIOGP_EnableGroupPins(LPC_GPIOGROUP, 0, 2, 1 << i);
            }
      }
      Chip_GPIOGP_SelectOrMode(LPC_GPIOGROUP, 0);
      Chip_GPIOGP_SelectEdgeMode(LPC_GPIOGROUP, 0);

      /* Enable Group GPIO interrupt 0 */

      NVIC_EnableIRQ(GINT0_IRQn);
}

Outcomes