本文主要是介绍LPC1768菜鸟学习之GPIO和外部中断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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;
}
这篇关于LPC1768菜鸟学习之GPIO和外部中断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!