⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extint.c

📁 LPC2102的keil vendor code
💻 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 + -