📄 extint.c
字号:
/*****************************************************************************
* extint.c: External interrupt API C file for NXP LPC17xx
* Family Microprocessors
*
* Copyright(C) 2009, NXP Semiconductor
* All rights reserved.
*
* History
* 2009.05.26 ver 1.00 Prelimnary version, first Release
*
*****************************************************************************/
#include "..\Drive\PLC_PUBLIC.H"
//#include "type.h"
//#include "extint.h"
#define EINT0 0x00000001
#define EINT0_EDGE 0x00000001
#define EINT1 0x00000002
#define EINT1_EDGE 0x00000002
#define EINT2 0x00000004
#define EINT2_EDGE 0x00000004
#define EINT3 0x00000008
#define EINT3_EDGE 0x00000008
volatile uint32_t eint0_counter,eint1_counter,eint2_counter,eint3_counter;
/*****************************************************************************
** Function name: EINT0_Handler
**
** Descriptions: external INT handler
**
** parameters: None
** Returned value: None
**
*****************************************************************************/
void EINT0_IRQHandler (void)
{
LPC_SC->EXTINT = EINT0; /* clear interrupt */
eint0_counter++;
}
void EINT1_IRQHandler (void)
{
LPC_SC->EXTINT = EINT1; /* clear interrupt */
eint1_counter++;
}
void EINT2_IRQHandler (void)
{
LPC_SC->EXTINT = EINT2; /* clear interrupt */
eint2_counter++;
}
void EINT3_IRQHandler (void)
{
LPC_SC->EXTINT = EINT3; /* clear interrupt */
eint3_counter++;
}
/*****************************************************************************
** Function name: EINTInit
**
** Descriptions: Initialize external interrupt pin and
** install interrupt handler
**
** parameters: None
** Returned value: true or false, return false if the interrupt
** handler can't be installed to the VIC table.
**
*****************************************************************************/
void EINTInit( void )
{
LPC_PINCON->PINSEL4 |= 0x00100000; /* set P2.10 as EINT0*/
LPC_PINCON->PINSEL4 |= 0x00400000; /* set P2.11 as EINT1*/
LPC_PINCON->PINSEL4 |= 0x01000000; /* set P2.12 as EINT2*/
LPC_PINCON->PINSEL4 |= 0x04000000; /* set P2.13 as EINT3*/
LPC_GPIOINT->IO2IntEnF |= 0x0200; /* Port2.10 is falling edge. */
LPC_GPIOINT->IO2IntEnF |= 0x0400; /* Port2.11 is falling edge. */
LPC_GPIOINT->IO2IntEnF |= 0x0800; /* Port2.12 is falling edge. */
LPC_GPIOINT->IO2IntEnF |= 0x1000; /* Port2.13 is falling edge. */
LPC_SC->EXTMODE |= EINT0_EDGE; /* INT0 edge trigger */
LPC_SC->EXTMODE |= EINT1_EDGE; /* INT1 edge trigger */
LPC_SC->EXTMODE |= EINT2_EDGE; /* INT2 edge trigger */
LPC_SC->EXTMODE |= EINT3_EDGE; /* INT3 edge trigger */
LPC_SC->EXTPOLAR = 0; /* INT0 is falling edge by default */
NVIC_EnableIRQ(EINT0_IRQn);
NVIC_EnableIRQ(EINT1_IRQn);
NVIC_EnableIRQ(EINT2_IRQn);
NVIC_EnableIRQ(EINT3_IRQn);
// return( TRUE );
}
/******************************************************************************
** End Of File
******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -