Electrical – GPIO external interrupt on LPC1769

interrupts

I am working on GPIO external interrupt on LPC1769 board and having problems getting it to work. I have connected pin 2.11 to a push button and interrupt must be generated when the button is pushed. Any help is greatly appreciated. Thanks.. Below is the code,

#define EINT0      0
void EINT0_IRQHandler(void)
{
  LPC_GPIOINT->IO2IntClr = (1 << 11);
  printf("0interrupt\n");
}
int main(void) {

LPC_PINCON->PINSEL4 &= ~(3<<20);
LPC_PINCON->PINSEL4 |= (1<<20);

LPC_GPIO2->FIODIR &= ~(1<<10);
// LPC_GPIOINT->IO2IntEnF |= (0x01 <<10);
LPC_SC->EXTMODE = (1<<EINT0);

LPC_SC->EXTPOLAR = (1<<EINT0);


NVIC_EnableIRQ(EINT0_IRQn);

while(1)
{

}
return 0 ;

Best Answer

Your Interrupt handler is wrong, it should look like:

void EINT0_IRQHandler(void)
{
  LPC_SC->EXTINT = (1<<EINT0);
  //light LED here, do not try to use printf() inside interrupts
}

But the real culprit might be the GPIO pin 2.10 - which is also used to trigger the UART bootloader on startup when LOW. See in manual UM10360.pdf, chapter 32, describing ISP function.

I recommend using external Interrupt 1 on P2.11 instead, which does not have this restriction.