Fork of Smoothie to port to mbed non-LPC targets.

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

Committer:
Michael J. Spencer
Date:
Fri Feb 28 18:52:52 2014 -0800
Revision:
2:1df0b61d3b5a
Update to latest Smoothie.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Michael J. Spencer 2:1df0b61d3b5a 1 /**********************************************************************
Michael J. Spencer 2:1df0b61d3b5a 2 * $Id$ lpc17xx_exti.h 2010-05-21
Michael J. Spencer 2:1df0b61d3b5a 3 *//**
Michael J. Spencer 2:1df0b61d3b5a 4 * @file lpc17xx_exti.h
Michael J. Spencer 2:1df0b61d3b5a 5 * @brief Contains all macro definitions and function prototypes
Michael J. Spencer 2:1df0b61d3b5a 6 * support for External interrupt firmware library on LPC17xx
Michael J. Spencer 2:1df0b61d3b5a 7 * @version 2.0
Michael J. Spencer 2:1df0b61d3b5a 8 * @date 21. May. 2010
Michael J. Spencer 2:1df0b61d3b5a 9 * @author NXP MCU SW Application Team
Michael J. Spencer 2:1df0b61d3b5a 10 *
Michael J. Spencer 2:1df0b61d3b5a 11 * Copyright(C) 2010, NXP Semiconductor
Michael J. Spencer 2:1df0b61d3b5a 12 * All rights reserved.
Michael J. Spencer 2:1df0b61d3b5a 13 *
Michael J. Spencer 2:1df0b61d3b5a 14 ***********************************************************************
Michael J. Spencer 2:1df0b61d3b5a 15 * Software that is described herein is for illustrative purposes only
Michael J. Spencer 2:1df0b61d3b5a 16 * which provides customers with programming information regarding the
Michael J. Spencer 2:1df0b61d3b5a 17 * products. This software is supplied "AS IS" without any warranties.
Michael J. Spencer 2:1df0b61d3b5a 18 * NXP Semiconductors assumes no responsibility or liability for the
Michael J. Spencer 2:1df0b61d3b5a 19 * use of the software, conveys no license or title under any patent,
Michael J. Spencer 2:1df0b61d3b5a 20 * copyright, or mask work right to the product. NXP Semiconductors
Michael J. Spencer 2:1df0b61d3b5a 21 * reserves the right to make changes in the software without
Michael J. Spencer 2:1df0b61d3b5a 22 * notification. NXP Semiconductors also make no representation or
Michael J. Spencer 2:1df0b61d3b5a 23 * warranty that such application will be suitable for the specified
Michael J. Spencer 2:1df0b61d3b5a 24 * use without further testing or modification.
Michael J. Spencer 2:1df0b61d3b5a 25 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 26
Michael J. Spencer 2:1df0b61d3b5a 27 /* Peripheral group ----------------------------------------------------------- */
Michael J. Spencer 2:1df0b61d3b5a 28 /** @defgroup EXTI EXTI (External Interrupt)
Michael J. Spencer 2:1df0b61d3b5a 29 * @ingroup LPC1700CMSIS_FwLib_Drivers
Michael J. Spencer 2:1df0b61d3b5a 30 * @{
Michael J. Spencer 2:1df0b61d3b5a 31 */
Michael J. Spencer 2:1df0b61d3b5a 32
Michael J. Spencer 2:1df0b61d3b5a 33 #ifndef LPC17XX_EXTI_H_
Michael J. Spencer 2:1df0b61d3b5a 34 #define LPC17XX_EXTI_H_
Michael J. Spencer 2:1df0b61d3b5a 35
Michael J. Spencer 2:1df0b61d3b5a 36 /* Includes ------------------------------------------------------------------- */
Michael J. Spencer 2:1df0b61d3b5a 37 #include "LPC17xx.h"
Michael J. Spencer 2:1df0b61d3b5a 38 #include "lpc_types.h"
Michael J. Spencer 2:1df0b61d3b5a 39
Michael J. Spencer 2:1df0b61d3b5a 40
Michael J. Spencer 2:1df0b61d3b5a 41 #ifdef __cplusplus
Michael J. Spencer 2:1df0b61d3b5a 42 extern "C"
Michael J. Spencer 2:1df0b61d3b5a 43 {
Michael J. Spencer 2:1df0b61d3b5a 44 #endif
Michael J. Spencer 2:1df0b61d3b5a 45
Michael J. Spencer 2:1df0b61d3b5a 46
Michael J. Spencer 2:1df0b61d3b5a 47 /* Private Macros ------------------------------------------------------------- */
Michael J. Spencer 2:1df0b61d3b5a 48 /** @defgroup EXTI_Private_Macros EXTI Private Macros
Michael J. Spencer 2:1df0b61d3b5a 49 * @{
Michael J. Spencer 2:1df0b61d3b5a 50 */
Michael J. Spencer 2:1df0b61d3b5a 51 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 52 * Macro defines for EXTI control register
Michael J. Spencer 2:1df0b61d3b5a 53 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 54 #define EXTI_EINT0_BIT_MARK 0x01
Michael J. Spencer 2:1df0b61d3b5a 55 #define EXTI_EINT1_BIT_MARK 0x02
Michael J. Spencer 2:1df0b61d3b5a 56 #define EXTI_EINT2_BIT_MARK 0x04
Michael J. Spencer 2:1df0b61d3b5a 57 #define EXTI_EINT3_BIT_MARK 0x08
Michael J. Spencer 2:1df0b61d3b5a 58
Michael J. Spencer 2:1df0b61d3b5a 59 /**
Michael J. Spencer 2:1df0b61d3b5a 60 * @}
Michael J. Spencer 2:1df0b61d3b5a 61 */
Michael J. Spencer 2:1df0b61d3b5a 62
Michael J. Spencer 2:1df0b61d3b5a 63 /* Private Macros ------------------------------------------------------------- */
Michael J. Spencer 2:1df0b61d3b5a 64 /** @defgroup EXTI_Public_Types EXTI Public Types
Michael J. Spencer 2:1df0b61d3b5a 65 * @{
Michael J. Spencer 2:1df0b61d3b5a 66 */
Michael J. Spencer 2:1df0b61d3b5a 67
Michael J. Spencer 2:1df0b61d3b5a 68 /**
Michael J. Spencer 2:1df0b61d3b5a 69 * @brief EXTI external interrupt line option
Michael J. Spencer 2:1df0b61d3b5a 70 */
Michael J. Spencer 2:1df0b61d3b5a 71 typedef enum
Michael J. Spencer 2:1df0b61d3b5a 72 {
Michael J. Spencer 2:1df0b61d3b5a 73 EXTI_EINT0, /*!< External interrupt 0, P2.10 */
Michael J. Spencer 2:1df0b61d3b5a 74 EXTI_EINT1, /*!< External interrupt 0, P2.11 */
Michael J. Spencer 2:1df0b61d3b5a 75 EXTI_EINT2, /*!< External interrupt 0, P2.12 */
Michael J. Spencer 2:1df0b61d3b5a 76 EXTI_EINT3 /*!< External interrupt 0, P2.13 */
Michael J. Spencer 2:1df0b61d3b5a 77 } EXTI_LINE_ENUM;
Michael J. Spencer 2:1df0b61d3b5a 78
Michael J. Spencer 2:1df0b61d3b5a 79 /**
Michael J. Spencer 2:1df0b61d3b5a 80 * @brief EXTI mode option
Michael J. Spencer 2:1df0b61d3b5a 81 */
Michael J. Spencer 2:1df0b61d3b5a 82 typedef enum
Michael J. Spencer 2:1df0b61d3b5a 83 {
Michael J. Spencer 2:1df0b61d3b5a 84 EXTI_MODE_LEVEL_SENSITIVE, /*!< Level sensitivity is selected */
Michael J. Spencer 2:1df0b61d3b5a 85 EXTI_MODE_EDGE_SENSITIVE /*!< Edge sensitivity is selected */
Michael J. Spencer 2:1df0b61d3b5a 86 } EXTI_MODE_ENUM;
Michael J. Spencer 2:1df0b61d3b5a 87
Michael J. Spencer 2:1df0b61d3b5a 88 /**
Michael J. Spencer 2:1df0b61d3b5a 89 * @brief EXTI polarity option
Michael J. Spencer 2:1df0b61d3b5a 90 */
Michael J. Spencer 2:1df0b61d3b5a 91 typedef enum
Michael J. Spencer 2:1df0b61d3b5a 92 {
Michael J. Spencer 2:1df0b61d3b5a 93 EXTI_POLARITY_LOW_ACTIVE_OR_FALLING_EDGE, /*!< Low active or falling edge sensitive
Michael J. Spencer 2:1df0b61d3b5a 94 depending on pin mode */
Michael J. Spencer 2:1df0b61d3b5a 95 EXTI_POLARITY_HIGH_ACTIVE_OR_RISING_EDGE /*!< High active or rising edge sensitive
Michael J. Spencer 2:1df0b61d3b5a 96 depending on pin mode */
Michael J. Spencer 2:1df0b61d3b5a 97 } EXTI_POLARITY_ENUM;
Michael J. Spencer 2:1df0b61d3b5a 98
Michael J. Spencer 2:1df0b61d3b5a 99 /**
Michael J. Spencer 2:1df0b61d3b5a 100 * @brief EXTI Initialize structure
Michael J. Spencer 2:1df0b61d3b5a 101 */
Michael J. Spencer 2:1df0b61d3b5a 102 typedef struct
Michael J. Spencer 2:1df0b61d3b5a 103 {
Michael J. Spencer 2:1df0b61d3b5a 104 EXTI_LINE_ENUM EXTI_Line; /*!<Select external interrupt pin (EINT0, EINT1, EINT 2, EINT3) */
Michael J. Spencer 2:1df0b61d3b5a 105
Michael J. Spencer 2:1df0b61d3b5a 106 EXTI_MODE_ENUM EXTI_Mode; /*!< Choose between Level-sensitivity or Edge sensitivity */
Michael J. Spencer 2:1df0b61d3b5a 107
Michael J. Spencer 2:1df0b61d3b5a 108 EXTI_POLARITY_ENUM EXTI_polarity; /*!< If EXTI mode is level-sensitive: this element use to select low or high active level
Michael J. Spencer 2:1df0b61d3b5a 109 if EXTI mode is polarity-sensitive: this element use to select falling or rising edge */
Michael J. Spencer 2:1df0b61d3b5a 110
Michael J. Spencer 2:1df0b61d3b5a 111 }EXTI_InitTypeDef;
Michael J. Spencer 2:1df0b61d3b5a 112
Michael J. Spencer 2:1df0b61d3b5a 113
Michael J. Spencer 2:1df0b61d3b5a 114 /**
Michael J. Spencer 2:1df0b61d3b5a 115 * @}
Michael J. Spencer 2:1df0b61d3b5a 116 */
Michael J. Spencer 2:1df0b61d3b5a 117
Michael J. Spencer 2:1df0b61d3b5a 118
Michael J. Spencer 2:1df0b61d3b5a 119 /* Public Functions ----------------------------------------------------------- */
Michael J. Spencer 2:1df0b61d3b5a 120 /** @defgroup EXTI_Public_Functions EXTI Public Functions
Michael J. Spencer 2:1df0b61d3b5a 121 * @{
Michael J. Spencer 2:1df0b61d3b5a 122 */
Michael J. Spencer 2:1df0b61d3b5a 123
Michael J. Spencer 2:1df0b61d3b5a 124 void EXTI_Init(void);
Michael J. Spencer 2:1df0b61d3b5a 125 void EXTI_DeInit(void);
Michael J. Spencer 2:1df0b61d3b5a 126
Michael J. Spencer 2:1df0b61d3b5a 127 void EXTI_Config(EXTI_InitTypeDef *EXTICfg);
Michael J. Spencer 2:1df0b61d3b5a 128 void EXTI_SetMode(EXTI_LINE_ENUM EXTILine, EXTI_MODE_ENUM mode);
Michael J. Spencer 2:1df0b61d3b5a 129 void EXTI_SetPolarity(EXTI_LINE_ENUM EXTILine, EXTI_POLARITY_ENUM polarity);
Michael J. Spencer 2:1df0b61d3b5a 130 void EXTI_ClearEXTIFlag(EXTI_LINE_ENUM EXTILine);
Michael J. Spencer 2:1df0b61d3b5a 131
Michael J. Spencer 2:1df0b61d3b5a 132
Michael J. Spencer 2:1df0b61d3b5a 133 /**
Michael J. Spencer 2:1df0b61d3b5a 134 * @}
Michael J. Spencer 2:1df0b61d3b5a 135 */
Michael J. Spencer 2:1df0b61d3b5a 136
Michael J. Spencer 2:1df0b61d3b5a 137
Michael J. Spencer 2:1df0b61d3b5a 138 #ifdef __cplusplus
Michael J. Spencer 2:1df0b61d3b5a 139 }
Michael J. Spencer 2:1df0b61d3b5a 140 #endif
Michael J. Spencer 2:1df0b61d3b5a 141
Michael J. Spencer 2:1df0b61d3b5a 142
Michael J. Spencer 2:1df0b61d3b5a 143 #endif /* LPC17XX_EXTI_H_ */
Michael J. Spencer 2:1df0b61d3b5a 144
Michael J. Spencer 2:1df0b61d3b5a 145 /**
Michael J. Spencer 2:1df0b61d3b5a 146 * @}
Michael J. Spencer 2:1df0b61d3b5a 147 */
Michael J. Spencer 2:1df0b61d3b5a 148
Michael J. Spencer 2:1df0b61d3b5a 149 /* --------------------------------- End Of File ------------------------------ */