| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | /*********************************************************************** $Id$      lpc_exti.c          2011-06-02*//*** @file     lpc_exti.c* @brief    Contains all functions support for External Interrupt*           firmware library on LPC* @version  1.0* @date     02. June. 2011* @author   NXP MCU SW Application Team* * Copyright(C) 2011, NXP Semiconductor* All rights reserved.************************************************************************* Software that is described herein is for illustrative purposes only* which provides customers with programming information regarding the* products. This software is supplied "AS IS" without any warranties.* NXP Semiconductors assumes no responsibility or liability for the* use of the software, conveys no license or title under any patent,* copyright, or mask work right to the product. NXP Semiconductors* reserves the right to make changes in the software without* notification. NXP Semiconductors also make no representation or* warranty that such application will be suitable for the specified* use without further testing or modification.* Permission to use, copy, modify, and distribute this software and its* documentation is hereby granted, under NXP Semiconductors'* relevant copyright in the software, without fee, provided that it* is used in conjunction with NXP Semiconductors microcontrollers.  This* copyright, permission, and disclaimer notice must appear in all copies of* this code.**********************************************************************//* Peripheral group ----------------------------------------------------------- *//** @addtogroup EXTI * @{ */#ifdef __BUILD_WITH_EXAMPLE__#include "lpc_libcfg.h"#else#include "lpc_libcfg_default.h"#endif /* __BUILD_WITH_EXAMPLE__ */#ifdef _EXTI/* Includes ------------------------------------------------------------------- */#include "lpc_exti.h"/* Public Functions ----------------------------------------------------------- *//** @addtogroup EXTI_Public_Functions * @{ *//*********************************************************************//** * @brief       Initial for EXT *              - Set EXTINT, EXTMODE, EXTPOLAR registers to default value * @param[in]   None * @return      None **********************************************************************/void EXTI_Init(void){    LPC_SC->EXTINT = 0xF;    LPC_SC->EXTMODE = 0x0;    LPC_SC->EXTPOLAR = 0x0;}/*********************************************************************//*** @brief        Close EXT* @param[in]    None* @return       None**********************************************************************/void    EXTI_DeInit(void){    ;}/*********************************************************************//** * @brief       Configuration for EXT *              - Set EXTINT, EXTMODE, EXTPOLAR register * @param[in]   EXTICfg Pointer to a EXTI_InitTypeDef structure *              that contains the configuration information for the *              specified external interrupt * @return      None **********************************************************************/void EXTI_Config(EXTI_InitTypeDef *EXTICfg){    LPC_SC->EXTINT = 0x0;    EXTI_SetMode(EXTICfg->EXTI_Line, EXTICfg->EXTI_Mode);    EXTI_SetPolarity(EXTICfg->EXTI_Line, EXTICfg->EXTI_polarity);}/*********************************************************************//*** @brief        Set mode for EXTI pin* @param[in]    EXTILine     external interrupt line, should be:*               - EXTI_EINT0: external interrupt line 0*               - EXTI_EINT1: external interrupt line 1*               - EXTI_EINT2: external interrupt line 2*               - EXTI_EINT3: external interrupt line 3* @param[in]    mode    external mode, should be:*               - EXTI_MODE_LEVEL_SENSITIVE*               - EXTI_MODE_EDGE_SENSITIVE* @return       None*********************************************************************/void EXTI_SetMode(EXTI_LINE_ENUM EXTILine, EXTI_MODE_ENUM mode){    if(mode == EXTI_MODE_EDGE_SENSITIVE)    {        LPC_SC->EXTMODE |= (1 << EXTILine);    }    else if(mode == EXTI_MODE_LEVEL_SENSITIVE)    {        LPC_SC->EXTMODE &= ~(1 << EXTILine);    }}/*********************************************************************//*** @brief        Set polarity for EXTI pin* @param[in]    EXTILine     external interrupt line, should be:*               - EXTI_EINT0: external interrupt line 0*               - EXTI_EINT1: external interrupt line 1*               - EXTI_EINT2: external interrupt line 2*               - EXTI_EINT3: external interrupt line 3* @param[in]    polarity     external polarity value, should be:*               - EXTI_POLARITY_LOW_ACTIVE_OR_FALLING_EDGE*               - EXTI_POLARITY_LOW_ACTIVE_OR_FALLING_EDGE* @return       None*********************************************************************/void EXTI_SetPolarity(EXTI_LINE_ENUM EXTILine, EXTI_POLARITY_ENUM polarity){    if(polarity == EXTI_POLARITY_HIGH_ACTIVE_OR_RISING_EDGE)    {        LPC_SC->EXTPOLAR |= (1 << EXTILine);    }    else if(polarity == EXTI_POLARITY_LOW_ACTIVE_OR_FALLING_EDGE)    {        LPC_SC->EXTPOLAR &= ~(1 << EXTILine);    }}/*********************************************************************//*** @brief        Clear External interrupt flag* @param[in]    EXTILine     external interrupt line, should be:*               - EXTI_EINT0: external interrupt line 0*               - EXTI_EINT1: external interrupt line 1*               - EXTI_EINT2: external interrupt line 2*               - EXTI_EINT3: external interrupt line 3* @return       None*********************************************************************/void EXTI_ClearEXTIFlag(EXTI_LINE_ENUM EXTILine){        LPC_SC->EXTINT |= (1 << EXTILine);}/** * @} */#endif /*_EXTI*//** * @} *//* --------------------------------- End Of File ------------------------------ */
 |