Merge pull request #93 from zyp/master
[fw/stlink] / example / libs_stm / inc / stm32l1xx / stm32l1xx_iwdg.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32l1xx_iwdg.h\r
4   * @author  MCD Application Team\r
5   * @version V1.0.0\r
6   * @date    31-December-2010\r
7   * @brief   This file contains all the functions prototypes for the IWDG \r
8   *          firmware library.\r
9   ******************************************************************************\r
10   * @attention\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 \r
23 /* Define to prevent recursive inclusion -------------------------------------*/\r
24 #ifndef __STM32L1xx_IWDG_H\r
25 #define __STM32L1xx_IWDG_H\r
26 \r
27 #ifdef __cplusplus\r
28  extern "C" {\r
29 #endif\r
30 \r
31 /* Includes ------------------------------------------------------------------*/\r
32 #include "stm32l1xx.h"\r
33 \r
34 /** @addtogroup STM32L1xx_StdPeriph_Driver\r
35   * @{\r
36   */\r
37 \r
38 /** @addtogroup IWDG\r
39   * @{\r
40   */\r
41 \r
42 /* Exported types ------------------------------------------------------------*/\r
43 /* Exported constants --------------------------------------------------------*/\r
44 \r
45 /** @defgroup IWDG_Exported_Constants\r
46   * @{\r
47   */\r
48 \r
49 /** @defgroup IWDG_WriteAccess\r
50   * @{\r
51   */\r
52 \r
53 #define IWDG_WriteAccess_Enable     ((uint16_t)0x5555)\r
54 #define IWDG_WriteAccess_Disable    ((uint16_t)0x0000)\r
55 #define IS_IWDG_WRITE_ACCESS(ACCESS) (((ACCESS) == IWDG_WriteAccess_Enable) || \\r
56                                       ((ACCESS) == IWDG_WriteAccess_Disable))\r
57 /**\r
58   * @}\r
59   */\r
60 \r
61 /** @defgroup IWDG_prescaler \r
62   * @{\r
63   */\r
64 \r
65 #define IWDG_Prescaler_4            ((uint8_t)0x00)\r
66 #define IWDG_Prescaler_8            ((uint8_t)0x01)\r
67 #define IWDG_Prescaler_16           ((uint8_t)0x02)\r
68 #define IWDG_Prescaler_32           ((uint8_t)0x03)\r
69 #define IWDG_Prescaler_64           ((uint8_t)0x04)\r
70 #define IWDG_Prescaler_128          ((uint8_t)0x05)\r
71 #define IWDG_Prescaler_256          ((uint8_t)0x06)\r
72 #define IS_IWDG_PRESCALER(PRESCALER) (((PRESCALER) == IWDG_Prescaler_4)  || \\r
73                                       ((PRESCALER) == IWDG_Prescaler_8)  || \\r
74                                       ((PRESCALER) == IWDG_Prescaler_16) || \\r
75                                       ((PRESCALER) == IWDG_Prescaler_32) || \\r
76                                       ((PRESCALER) == IWDG_Prescaler_64) || \\r
77                                       ((PRESCALER) == IWDG_Prescaler_128)|| \\r
78                                       ((PRESCALER) == IWDG_Prescaler_256))\r
79 /**\r
80   * @}\r
81   */\r
82 \r
83 /** @defgroup IWDG_Flag \r
84   * @{\r
85   */\r
86 \r
87 #define IWDG_FLAG_PVU               ((uint16_t)0x0001)\r
88 #define IWDG_FLAG_RVU               ((uint16_t)0x0002)\r
89 #define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU))\r
90 #define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF)\r
91 /**\r
92   * @}\r
93   */\r
94 \r
95 /**\r
96   * @}\r
97   */\r
98 \r
99 /* Exported macro ------------------------------------------------------------*/\r
100 /* Exported functions ------------------------------------------------------- */\r
101 \r
102 /* Prescaler and Counter configuration functions ******************************/\r
103 void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);\r
104 void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);\r
105 void IWDG_SetReload(uint16_t Reload);\r
106 void IWDG_ReloadCounter(void);\r
107 \r
108 /* IWDG activation function ***************************************************/\r
109 void IWDG_Enable(void);\r
110 \r
111 /* Flag management function ***************************************************/\r
112 FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);\r
113 \r
114 #ifdef __cplusplus\r
115 }\r
116 #endif\r
117 \r
118 #endif /* __STM32L1xx_IWDG_H */\r
119 \r
120 /**\r
121   * @}\r
122   */\r
123 \r
124 /**\r
125   * @}\r
126   */\r
127 \r
128 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/\r