1 /**
2 ******************************************************************************
3 * @file    HAL_iwdg.h
4 * @author  AE Team
5 * @version V1.0.0
6 * @date    28/7/2017
7 * @brief   This file contains all the functions prototypes for the IWDG
8 *          firmware library.
9 ******************************************************************************
10 * @copy
11 *
12 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
14 * TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY
15 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
16 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
17 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
18 *
19 * <h2><center>&copy; COPYRIGHT 2017 MindMotion</center></h2>
20 */
21 
22 /* Define to prevent recursive inclusion -------------------------------------*/
23 #ifndef __HAL_IWDG_H
24 #define __HAL_IWDG_H
25 
26 /* Includes ------------------------------------------------------------------*/
27 #include "HAL_device.h"
28 
29 /** @addtogroup StdPeriph_Driver
30 * @{
31 */
32 
33 /** @addtogroup IWDG
34 * @{
35 */
36 
37 /** @defgroup IWDG_Exported_Types
38 * @{
39 */
40 
41 /**
42 * @}
43 */
44 
45 /** @defgroup IWDG_Exported_Constants
46 * @{
47 */
48 
49 /** @defgroup Write_access_to_IWDG_PR_and_IWDG_RLR_registers
50 * @{
51 */
52 
53 #define IWDG_WriteAccess_Enable     ((uint16_t)0x5555)
54 #define IWDG_WriteAccess_Disable    ((uint16_t)0x0000)
55 #define IS_IWDG_WRITE_ACCESS(ACCESS) (((ACCESS) == IWDG_WriteAccess_Enable) || \
56 ((ACCESS) == IWDG_WriteAccess_Disable))
57 /**
58 * @}
59 */
60 
61 /** @defgroup IWDG_prescaler
62 * @{
63 */
64 
65 #define IWDG_Prescaler_4            ((uint8_t)0x00)
66 #define IWDG_Prescaler_8            ((uint8_t)0x01)
67 #define IWDG_Prescaler_16           ((uint8_t)0x02)
68 #define IWDG_Prescaler_32           ((uint8_t)0x03)
69 #define IWDG_Prescaler_64           ((uint8_t)0x04)
70 #define IWDG_Prescaler_128          ((uint8_t)0x05)
71 #define IWDG_Prescaler_256          ((uint8_t)0x06)
72 #define IS_IWDG_PRESCALER(PRESCALER) (((PRESCALER) == IWDG_Prescaler_4)  || \
73 ((PRESCALER) == IWDG_Prescaler_8)  || \
74   ((PRESCALER) == IWDG_Prescaler_16) || \
75     ((PRESCALER) == IWDG_Prescaler_32) || \
76       ((PRESCALER) == IWDG_Prescaler_64) || \
77         ((PRESCALER) == IWDG_Prescaler_128)|| \
78           ((PRESCALER) == IWDG_Prescaler_256))
79 /**
80 * @}
81 */
82 
83 /** @defgroup IWDG_Flag
84 * @{
85 */
86 
87 #define IWDG_FLAG_PVU               ((uint16_t)0x0001)
88 #define IWDG_FLAG_RVU               ((uint16_t)0x0002)
89 #define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU))
90 #define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF)
91 /**
92 * @}
93 */
94 
95 /**
96 * @}
97 */
98 
99 /** @defgroup IWDG_Exported_Macros
100 * @{
101 */
102 
103 /**
104 * @}
105 */
106 
107 /** @defgroup IWDG_Exported_Functions
108 * @{
109 */
110 
111 void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);
112 void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);
113 void IWDG_SetReload(uint16_t Reload);
114 void IWDG_ReloadCounter(void);
115 void IWDG_Enable(void);
116 FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);
117 
118 #endif /* __HAL_IWDG_H */
119 /**
120 * @}
121 */
122 
123 /**
124 * @}
125 */
126 
127 /**
128 * @}
129 */
130 
131 /*-------------------------(C) COPYRIGHT 2017 MindMotion ----------------------*/
132