]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_exti.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / CORTEX_STM32L152_IAR / system_and_ST_code / STM32L1xx_StdPeriph_Driver / inc / stm32l1xx_exti.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32l1xx_exti.h\r
4   * @author  MCD Application Team\r
5   * @version V1.0.0RC1\r
6   * @date    07/02/2010\r
7   * @brief   This file contains all the functions prototypes for the EXTI firmware\r
8   *          library.\r
9   ******************************************************************************\r
10   * @copy\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * <h2><center>&copy; COPYRIGHT 2010 STMicroelectronics</center></h2>\r
20   */ \r
21 \r
22 /* Define to prevent recursive inclusion -------------------------------------*/\r
23 #ifndef __STM32L1xx_EXTI_H\r
24 #define __STM32L1xx_EXTI_H\r
25 \r
26 #ifdef __cplusplus\r
27  extern "C" {\r
28 #endif\r
29 \r
30 /* Includes ------------------------------------------------------------------*/\r
31 #include "stm32l1xx.h"\r
32 \r
33 /** @addtogroup STM32L1xx_StdPeriph_Driver\r
34   * @{\r
35   */\r
36 \r
37 /** @addtogroup EXTI\r
38   * @{\r
39   */\r
40 \r
41 /** @defgroup EXTI_Exported_Types\r
42   * @{\r
43   */\r
44 \r
45 /** \r
46   * @brief  EXTI mode enumeration  \r
47   */\r
48 \r
49 typedef enum\r
50 {\r
51   EXTI_Mode_Interrupt = 0x00,\r
52   EXTI_Mode_Event = 0x04\r
53 }EXTIMode_TypeDef;\r
54 \r
55 #define IS_EXTI_MODE(MODE) (((MODE) == EXTI_Mode_Interrupt) || ((MODE) == EXTI_Mode_Event))\r
56 \r
57 /** \r
58   * @brief  EXTI Trigger enumeration  \r
59   */\r
60 \r
61 typedef enum\r
62 {\r
63   EXTI_Trigger_Rising = 0x08,\r
64   EXTI_Trigger_Falling = 0x0C,  \r
65   EXTI_Trigger_Rising_Falling = 0x10\r
66 }EXTITrigger_TypeDef;\r
67 \r
68 #define IS_EXTI_TRIGGER(TRIGGER) (((TRIGGER) == EXTI_Trigger_Rising) || \\r
69                                   ((TRIGGER) == EXTI_Trigger_Falling) || \\r
70                                   ((TRIGGER) == EXTI_Trigger_Rising_Falling))\r
71 /** \r
72   * @brief  EXTI Init Structure definition  \r
73   */\r
74 \r
75 typedef struct\r
76 {\r
77   uint32_t EXTI_Line;               /*!< Specifies the EXTI lines to be enabled or disabled.\r
78                                          This parameter can be any combination of @ref EXTI_Lines */\r
79    \r
80   EXTIMode_TypeDef EXTI_Mode;       /*!< Specifies the mode for the EXTI lines.\r
81                                          This parameter can be a value of @ref EXTIMode_TypeDef */\r
82 \r
83   EXTITrigger_TypeDef EXTI_Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines.\r
84                                          This parameter can be a value of @ref EXTIMode_TypeDef */\r
85 \r
86   FunctionalState EXTI_LineCmd;     /*!< Specifies the new state of the selected EXTI lines.\r
87                                          This parameter can be set either to ENABLE or DISABLE */ \r
88 }EXTI_InitTypeDef;\r
89 \r
90 /**\r
91   * @}\r
92   */\r
93 \r
94 /** @defgroup EXTI_Exported_Constants\r
95   * @{\r
96   */\r
97 \r
98 /** @defgroup EXTI_Lines \r
99   * @{\r
100   */\r
101 \r
102 #define EXTI_Line0       ((uint32_t)0x00000001)  /*!< External interrupt line 0 */\r
103 #define EXTI_Line1       ((uint32_t)0x00000002)  /*!< External interrupt line 1 */\r
104 #define EXTI_Line2       ((uint32_t)0x00000004)  /*!< External interrupt line 2 */\r
105 #define EXTI_Line3       ((uint32_t)0x00000008)  /*!< External interrupt line 3 */\r
106 #define EXTI_Line4       ((uint32_t)0x00000010)  /*!< External interrupt line 4 */\r
107 #define EXTI_Line5       ((uint32_t)0x00000020)  /*!< External interrupt line 5 */\r
108 #define EXTI_Line6       ((uint32_t)0x00000040)  /*!< External interrupt line 6 */\r
109 #define EXTI_Line7       ((uint32_t)0x00000080)  /*!< External interrupt line 7 */\r
110 #define EXTI_Line8       ((uint32_t)0x00000100)  /*!< External interrupt line 8 */\r
111 #define EXTI_Line9       ((uint32_t)0x00000200)  /*!< External interrupt line 9 */\r
112 #define EXTI_Line10      ((uint32_t)0x00000400)  /*!< External interrupt line 10 */\r
113 #define EXTI_Line11      ((uint32_t)0x00000800)  /*!< External interrupt line 11 */\r
114 #define EXTI_Line12      ((uint32_t)0x00001000)  /*!< External interrupt line 12 */\r
115 #define EXTI_Line13      ((uint32_t)0x00002000)  /*!< External interrupt line 13 */\r
116 #define EXTI_Line14      ((uint32_t)0x00004000)  /*!< External interrupt line 14 */\r
117 #define EXTI_Line15      ((uint32_t)0x00008000)  /*!< External interrupt line 15 */\r
118 #define EXTI_Line16      ((uint32_t)0x00010000)  /*!< External interrupt line 16 \r
119                                                       Connected to the PVD Output */\r
120 #define EXTI_Line17      ((uint32_t)0x00020000)  /*!< External interrupt line 17 \r
121                                                       Connected to the RTC Alarm \r
122                                                       event */\r
123 #define EXTI_Line18      ((uint32_t)0x00040000)  /*!< External interrupt line 18 \r
124                                                       Connected to the USB Device \r
125                                                       FS Wakeup from suspend event */\r
126 #define EXTI_Line19      ((uint32_t)0x00080000)  /*!< External interrupt line 19 \r
127                                                       Connected to the RTC Tamper \r
128                                                       and Time Stamp events */ \r
129 #define EXTI_Line20      ((uint32_t)0x00100000)  /*!< External interrupt line 20 \r
130                                                       Connected to the RTC Wakeup \r
131                                                       event */\r
132 #define EXTI_Line21      ((uint32_t)0x00200000)  /*!< External interrupt line 21 \r
133                                                       Connected to the Comparator 1 \r
134                                                       event */\r
135 \r
136 #define EXTI_Line22      ((uint32_t)0x00400000)  /*!< External interrupt line 22 \r
137                                                       Connected to the Comparator 2\r
138                                                       event */\r
139                                                                                                   \r
140 #define IS_EXTI_LINE(LINE) ((((LINE) & (uint32_t)0xFF800000) == 0x00) && ((LINE) != (uint16_t)0x00))\r
141 \r
142 #define IS_GET_EXTI_LINE(LINE) (((LINE) == EXTI_Line0) || ((LINE) == EXTI_Line1) || \\r
143                                 ((LINE) == EXTI_Line2) || ((LINE) == EXTI_Line3) || \\r
144                                 ((LINE) == EXTI_Line4) || ((LINE) == EXTI_Line5) || \\r
145                                 ((LINE) == EXTI_Line6) || ((LINE) == EXTI_Line7) || \\r
146                                 ((LINE) == EXTI_Line8) || ((LINE) == EXTI_Line9) || \\r
147                                 ((LINE) == EXTI_Line10) || ((LINE) == EXTI_Line11) || \\r
148                                 ((LINE) == EXTI_Line12) || ((LINE) == EXTI_Line13) || \\r
149                                 ((LINE) == EXTI_Line14) || ((LINE) == EXTI_Line15) || \\r
150                                 ((LINE) == EXTI_Line16) || ((LINE) == EXTI_Line17) || \\r
151                                 ((LINE) == EXTI_Line18) || ((LINE) == EXTI_Line19) || \\r
152                                 ((LINE) == EXTI_Line20) || ((LINE) == EXTI_Line21) || \\r
153                                 ((LINE) == EXTI_Line22))\r
154 \r
155 /**\r
156   * @}\r
157   */\r
158 \r
159 /**\r
160   * @}\r
161   */\r
162 \r
163 /** @defgroup EXTI_Exported_Macros\r
164   * @{\r
165   */\r
166 \r
167 /**\r
168   * @}\r
169   */\r
170 \r
171 /** @defgroup EXTI_Exported_Functions\r
172   * @{\r
173   */\r
174 \r
175 void EXTI_DeInit(void);\r
176 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);\r
177 void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct);\r
178 void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);\r
179 FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line);\r
180 void EXTI_ClearFlag(uint32_t EXTI_Line);\r
181 ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);\r
182 void EXTI_ClearITPendingBit(uint32_t EXTI_Line);\r
183 \r
184 #ifdef __cplusplus\r
185 }\r
186 #endif\r
187 \r
188 #endif /* __STM32L1xx_EXTI_H */\r
189 /**\r
190   * @}\r
191   */\r
192 \r
193 /**\r
194   * @}\r
195   */\r
196 \r
197 /**\r
198   * @}\r
199   */\r
200 \r
201 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/\r