]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_exti.h
Add FreeRTOS-Plus directory.
[freertos] / FreeRTOS / Demo / CORTEX_STM32F103_Keil / STM32F10xFWLib / inc / stm32f10x_exti.h
1 /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************\r
2 * File Name          : stm32f10x_exti.h\r
3 * Author             : MCD Application Team\r
4 * Date First Issued  : 09/29/2006\r
5 * Description        : This file contains all the functions prototypes for the\r
6 *                      EXTI firmware library.\r
7 ********************************************************************************\r
8 * History:\r
9 * 04/02/2007: V0.2\r
10 * 02/05/2007: V0.1\r
11 * 09/29/2006: V0.01\r
12 ********************************************************************************\r
13 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
14 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.\r
15 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,\r
16 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE\r
17 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING\r
18 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
19 *******************************************************************************/\r
20 \r
21 /* Define to prevent recursive inclusion -------------------------------------*/\r
22 #ifndef __STM32F10x_EXTI_H\r
23 #define __STM32F10x_EXTI_H\r
24 \r
25 /* Includes ------------------------------------------------------------------*/\r
26 #include "stm32f10x_map.h"\r
27 \r
28 /* Exported types ------------------------------------------------------------*/\r
29 /* EXTI mode enumeration -----------------------------------------------------*/\r
30 typedef enum\r
31 {\r
32   EXTI_Mode_Interrupt = 0x00,\r
33   EXTI_Mode_Event = 0x04\r
34 }EXTIMode_TypeDef;\r
35 \r
36 #define IS_EXTI_MODE(MODE) ((MODE == EXTI_Mode_Interrupt) || (MODE == EXTI_Mode_Event))\r
37                             \r
38 /* EXTI Trigger enumeration --------------------------------------------------*/\r
39 typedef enum\r
40 {\r
41   EXTI_Trigger_Rising = 0x08,\r
42   EXTI_Trigger_Falling = 0x0C,  \r
43   EXTI_Trigger_Rising_Falling = 0x10\r
44 }EXTITrigger_TypeDef;\r
45 \r
46 #define IS_EXTI_TRIGGER(TRIGGER) ((TRIGGER == EXTI_Trigger_Rising) || \\r
47                                   (TRIGGER == EXTI_Trigger_Falling) || \\r
48                                   (TRIGGER == EXTI_Trigger_Rising_Falling))\r
49 \r
50 /* EXTI Init Structure definition --------------------------------------------*/\r
51 typedef struct\r
52 {\r
53   u32 EXTI_Line;\r
54   EXTIMode_TypeDef EXTI_Mode;\r
55   EXTITrigger_TypeDef EXTI_Trigger;\r
56   FunctionalState EXTI_LineCmd;\r
57 }EXTI_InitTypeDef;\r
58 \r
59 /* Exported constants --------------------------------------------------------*/\r
60 /* EXTI Lines ----------------------------------------------------------------*/\r
61 #define EXTI_Line0       ((u32)0x00001)  /* External interrupt line 0 */\r
62 #define EXTI_Line1       ((u32)0x00002)  /* External interrupt line 1 */\r
63 #define EXTI_Line2       ((u32)0x00004)  /* External interrupt line 2 */\r
64 #define EXTI_Line3       ((u32)0x00008)  /* External interrupt line 3 */\r
65 #define EXTI_Line4       ((u32)0x00010)  /* External interrupt line 4 */\r
66 #define EXTI_Line5       ((u32)0x00020)  /* External interrupt line 5 */\r
67 #define EXTI_Line6       ((u32)0x00040)  /* External interrupt line 6 */\r
68 #define EXTI_Line7       ((u32)0x00080)  /* External interrupt line 7 */\r
69 #define EXTI_Line8       ((u32)0x00100)  /* External interrupt line 8 */\r
70 #define EXTI_Line9       ((u32)0x00200)  /* External interrupt line 9 */\r
71 #define EXTI_Line10      ((u32)0x00400)  /* External interrupt line 10 */\r
72 #define EXTI_Line11      ((u32)0x00800)  /* External interrupt line 11 */\r
73 #define EXTI_Line12      ((u32)0x01000)  /* External interrupt line 12 */\r
74 #define EXTI_Line13      ((u32)0x02000)  /* External interrupt line 13 */\r
75 #define EXTI_Line14      ((u32)0x04000)  /* External interrupt line 14 */\r
76 #define EXTI_Line15      ((u32)0x08000)  /* External interrupt line 15 */\r
77 #define EXTI_Line16      ((u32)0x10000)  /* External interrupt line 16\r
78                                             Connected to the PVD Output */\r
79 #define EXTI_Line17      ((u32)0x20000)  /* External interrupt line 17 \r
80                                             Connected to the RTC Alarm event */\r
81 #define EXTI_Line18      ((u32)0x40000)  /* External interrupt line 18 \r
82                                             Connected to the USB Wakeup from \r
83                                             suspend event */\r
84 \r
85 #define IS_EXTI_LINE(LINE) (((LINE & (u32)0xFFF80000) == 0x00) && (LINE != (u16)0x00))\r
86 \r
87 #define IS_GET_EXTI_LINE(LINE) ((LINE == EXTI_Line0) || (LINE == EXTI_Line1) || \\r
88                             (LINE == EXTI_Line2) || (LINE == EXTI_Line3) || \\r
89                             (LINE == EXTI_Line4) || (LINE == EXTI_Line5) || \\r
90                             (LINE == EXTI_Line6) || (LINE == EXTI_Line7) || \\r
91                             (LINE == EXTI_Line8) || (LINE == EXTI_Line9) || \\r
92                             (LINE == EXTI_Line10) || (LINE == EXTI_Line11) || \\r
93                             (LINE == EXTI_Line12) || (LINE == EXTI_Line13) || \\r
94                             (LINE == EXTI_Line14) || (LINE == EXTI_Line15) || \\r
95                             (LINE == EXTI_Line16) || (LINE == EXTI_Line17) || \\r
96                             (LINE == EXTI_Line18))\r
97                                  \r
98 /* Exported macro ------------------------------------------------------------*/\r
99 /* Exported functions ------------------------------------------------------- */\r
100 void EXTI_DeInit(void);\r
101 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);\r
102 void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct);\r
103 void EXTI_GenerateSWInterrupt(u32 EXTI_Line);\r
104 FlagStatus EXTI_GetFlagStatus(u32 EXTI_Line);\r
105 void EXTI_ClearFlag(u32 EXTI_Line);\r
106 ITStatus EXTI_GetITStatus(u32 EXTI_Line);\r
107 void EXTI_ClearITPendingBit(u32 EXTI_Line);\r
108 \r
109 #endif /* __STM32F10x_EXTI_H */\r
110 \r
111 /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/\r