NXP

LPC1768之外部中断

2019-07-12 11:49发布

/************************************************************************************* * main.c: the main file * NXP --> LPC1768 * * * Author : light * Date : 2012-4-22 * * Email : lightwu@hotmail.com ***************************************************************************************/ #include #include "GPIO.h" /******************************************************************************** ** Descriptions :external interrupt initialze ** ** parameters :None ** Returned value :None *********************************************************************************/ void ExternIntInit(void) { LPC_PINCON->PINSEL4 |= (1<<20); // p2.10设置为外部中断 LPC_PINCON->PINSEL4 &= ~(1<<21); LPC_GPIO2->FIODIR &= ~(1<<10); // p2.10 设置为输入 NVIC_EnableIRQ(EINT3_IRQn); /* enable irq in nvic */ //EINT3和GPIO中断共用 LPC_GPIOINT->IO2IntEnR |= (1<<10); //上升沿触发 } /******************************************************************************** ** Descriptions :EINT0 interrupt ** ** parameters :None ** Returned value :None *********************************************************************************/ void EINT3_IRQHandler(void) { LPC_GPIOINT->IO2IntClr |= (1<<10); //将中断清零,否则一直在中断中无法退出 LedNOn(3); DelayMs(1000); LedNOff(3); DelayMs(1000); } /*---------------------------------------------------------------------------- The main Function *----------------------------------------------------------------------------*/ int main(void) { int loc; SystemInit(); ExternIntInit(); LedInit(); while(1) { for(loc=7;loc>=0;loc--) { /* LedNOn(loc); DelayMs(1000); LedNOff(loc); DelayMs(1000); */ } } }