GPIO interrupción externa en LPC1769

0

Estoy trabajando en la interrupción externa GPIO en la placa LPC1769 y tengo problemas para que funcione. He conectado el pin 2.11 a un botón pulsador y se debe generar una interrupción cuando se presiona el botón. Cualquier ayuda es muy apreciada. Gracias. A continuación se muestra el código,

#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 ;
    
pregunta storm_rd

1 respuesta

1

Su manejador de interrupciones es incorrecto, debería verse como:

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

Pero el verdadero culpable podría ser el pin GPIO 2.10, que también se utiliza para activar el arranque del cargador de arranque UART cuando está BAJO. Consulte el manual UM10360.pdf, capítulo 32, que describe la función ISP.

Recomiendo usar Interrupción 1 externa en P2.11 en su lugar, que no tiene esta restricción.

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas