LPC1768菜鸟学习之GPIO和外部中断

来源:互联网 发布:spss有mac版吗 编辑:程序博客网 时间:2024/06/09 14:53

LPC1768的P0口和P2口既能做输入输出,还可以配置为中断源。

现在P2.10作为按键,配置如下:

void BUTTON_init(void)

{

 LPC_GPIO2->FIODIR      &=~(1 << 10);    /* PORT2.10 definedas input       */

 LPC_GPIOINT->IO2IntEnF |=  (1<< 10);    /* enable falling edgeirq         */

 

 NVIC_EnableIRQ(EINT3_IRQn);             /* enable irq in nvic             */

}

void EINT3_IRQHandler()

{

 LPC_GPIOINT->IO2IntClr |= (1 << 10);     /* clear pending interrupt         */

    LED_ON;

Dealy(1000);

 LED_OFF;

}

EINT3和GPIO中断共用,所以按一下按键直接进入EINT3的中断服务程序里。

 

而lpc1768有4个外部中断输入,为P2.10~P2.13,同样取P2.10作为按键

void EINTInit( void )

{

 LPC_PINCON->PINSEL4 = 0x00100000;      /*set P2.10 as EINT0 and

                                                               P2.0~7GPIO output */

 LPC_GPIO2->FIODIR = 0x000000FF;    /*port 2, bit 0~7 only */

 LPC_GPIO2->FIOCLR = 0x000000FF;   /*turn off LEDs */

 

  LPC_SC->EXTMODE = EINT0_EDGE;             /* INT0 edge trigger */

 LPC_SC->EXTPOLAR = 0;                          /* INT0 is falling edge by default */

 

 NVIC_EnableIRQ(EINT0_IRQn);

 return( TRUE );

}

void EINT0_IRQHandler (void)

{

 LPC_SC->EXTINT = EINT0;          /* clear interrupt */   //EINT0==0x10

              LED_ON;

Dealy(1000);

 LED_OFF;

}

1 0
原创粉丝点击