📄 extint.c
字号:
/*****************************************************************************
* extint.c: Target C file for NXP LPC210x Family Microprocessors
*
* Copyright(C) 2006, NXP Semiconductors
* All rights reserved.
*
* History
* 2005.10.01 ver 1.00 Prelimnary version, first Release
*
*****************************************************************************/
#include "LPC2103.H" /* LPC21xx definitions */
#include "type.h"
#include "irq.h"
#include "extint.h"
extern BYTE gInterrupt_Status;
/*****************************************************************************
** Function name: EINT0_Handler
** Description: This function handles the external interrupt 0 event.
** Parameters: None
** Returned value: None
*****************************************************************************/
void EINT0_Handler (void) __irq
{
EXTINT |= EINT0; /* clear external interrupt 0 */
gInterrupt_Status |= EINT0; /* Sets EINT0 status flag as High */
IODIR |= 0x01; /* Ensure P0.0 is configured as output */
IOCLR |= 0x01; /* Set P0.0 as Low to send an interrupt to the
I2C Master(Host) */
VICVectAddr = 0; /* Acknowledge Interrupt */
} // EINT0_Handler
/*****************************************************************************
** Function name: EINT1_Handler
** Descriptions: This function handles the external interrupt 1 event.
** parameters: None
** Returned value: None
*****************************************************************************/
void EINT1_Handler (void) __irq
{
EXTINT |= EINT1; /* clear external interrupt 1 */
gInterrupt_Status |= EINT1; /* Sets EINT1 status flag as High */
IODIR |= 0x01; /* Ensure P0.0 is configured as output */
IOCLR |= 0x01; /* Set P0.0 as Low to send an interrupt to the
I2C Master(Host) */
VICVectAddr = 0; /* Acknowledge Interrupt */
} // EINT1_Handler
/*****************************************************************************
** Function name: EINT2_Handler
** Descriptions: This function handles the external interrupt 2 event.
** parameters: None
** Returned value: None
*****************************************************************************/
void EINT2_Handler (void) __irq
{
EXTINT |= EINT2; /* clear external interrupt 2 */
gInterrupt_Status |= EINT2; /* Sets EINT2 status flag as High */
IODIR |= 0x01; /* Ensure P0.0 is configured as output */
IOCLR |= 0x01; /* Set P0.0 as Low to send an interrupt to the
I2C Master(Host) */
VICVectAddr = 0; /* Acknowledge Interrupt */
} // EINT2_Handler
/*****************************************************************************
** 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 cannot be installed to the VIC table.
*****************************************************************************/
DWORD EINTInit( BYTE interruptID )
{
switch(interruptID)
{
case EINT0:
PINSEL1 |= 0x00000001; /* Set P0.16 as EINT0 */
EXTMODE |= EINT0_EDGE; /* INT1 edge trigger */
EXTPOLAR |= EINT_FALLING; /* INT1 is falling edge by default */
if( install_irq( EINT0_INT, (void *)EINT0_Handler ) == FALSE )
{
return (FALSE);
}
break;
case EINT1:
PINSEL0 |= 0x10000000; /* Set P0.14 as EINT1 */
EXTMODE |= EINT1_EDGE; /* INT1 edge trigger */
EXTPOLAR |= EINT_FALLING; /* INT1 is falling edge by default */
if( install_irq( EINT1_INT, (void *)EINT1_Handler ) == FALSE )
{
return (FALSE);
}
break;
case EINT2:
PINSEL0 |= 0x40000000; /* Set P0.15 as EINT2 */
EXTMODE |= EINT2_EDGE; /* INT1 edge trigger */
EXTPOLAR |= EINT_FALLING; /* INT1 is falling edge by default */
if( install_irq( EINT2_INT, (void *)EINT2_Handler ) == FALSE )
{
return (FALSE);
}
break;
default:
break;
}
return( TRUE );
} // EINTInit
/******************************************************************************
** End Of File
******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -