1 
2 /***********************************************************************
3  * Filename    : HAL_WDT.h
4  * Description : HAL WDT driver header file
5  * Author(s)   : CWT
6  * version     : V1.0
7  * Modify date : 2020-04-17
8  ***********************************************************************/
9 
10 #ifndef __HAL_WDT_H__
11 #define __HAL_WDT_H__
12 
13 #include "ACM32Fxx_HAL.h"
14 
15 
16 /****************  Bit definition for WDT CTRL register  ********************/
17 #define WDT_CTRL_EN                         BIT7
18 #define WDT_CTRL_MODE                       BIT6
19 #define WDT_CTRL_INTEN                      BIT4
20 #define WDT_CTRL_DIVISOR                    (BIT0|BIT1|BIT2)
21 
22 /****************  Bit definition for WDTRIS register  ********************/
23 #define WDT_WDTRIS                          BIT0
24 
25 typedef enum
26 {
27     WDT_MODE_RST = 0x00U,
28     WDT_MODE_INT = 0x01U,
29 } WDT_MODE;
30 
31 typedef enum
32 {
33     WDT_DIVISOR_NONE = 0x00U,
34     WDT_DIVISOR_2 = 0x01U,
35     WDT_DIVISOR_4 = 0x02U,
36     WDT_DIVISOR_8 = 0x03U,
37     WDT_DIVISOR_16 = 0x04U,
38     WDT_DIVISOR_32 = 0x05U,
39     WDT_DIVISOR_64 = 0x06U,
40     WDT_DIVISOR_128 = 0x07U,
41 } WDT_DIVISOR;
42 
43 typedef struct
44 {
45     WDT_DIVISOR WDTDivisor;
46     WDT_MODE WDTMode;
47     uint32_t WDTLoad;
48     uint32_t WDTINTCLRTIME;
49 } WDT_InitTypeDef;
50 
51 typedef struct
52 {
53     WDT_TypeDef            *Instance;                /*!< WDT registers base address        */
54     WDT_InitTypeDef         Init;                    /*!< WDT communication parameters      */
55 }WDT_HandleTypeDef;
56 
57 #define WDT_ENABLE                      (0x01 << 7)
58 #define WDT_DISABLE                     (~WDT_ENABLE)
59 #define WDT_INT_ENABLE                  (0x01 << 4)
60 #define WDT_INT_DISABLE                 (~WDT_INT_ENABLE)
61 /************************************************************************
62  * function   : HAL_WDT_Feed
63  * Description: WDT feed.
64  * input :
65  *         none
66  * return: none
67  ************************************************************************/
68  void HAL_WDT_Feed(WDT_HandleTypeDef* hwdt);
69 /************************************************************************
70  * function   : WDT_IRQHandler
71  * Description: WDT interrupt service routine.
72  * input :
73  *         none
74  * return: none
75  ************************************************************************/
76  void HAL_WDT_IRQHandler(WDT_HandleTypeDef* hwdt);
77 /************************************************************************
78  * function   : HAL_WDT_Init
79  * Description: WDT initiation.
80  * input :
81  *         pinit initiation parameters
82  * return: none
83  ************************************************************************/
84  void HAL_WDT_Init(WDT_HandleTypeDef* hwdt);
85 /************************************************************************
86  * function   : WDT_Start
87  * Description: WDT start
88  * input : none
89  *
90  * return: none
91  ************************************************************************/
92  void HAL_WDT_Start(WDT_HandleTypeDef* hwdt);
93 /************************************************************************
94  * function   : WDT_Stop
95  * Description: WDT stop
96  * input : none
97  *
98  * return: none
99  ************************************************************************/
100  void HAL_WDT_Stop(WDT_HandleTypeDef* hwdt);
101 /************************************************************************
102  * function   : WDT_Int_Enable
103  * Description: WDT int enable
104  * input : none
105  *
106  * return: none
107  ************************************************************************/
108  void HAL_WDT_Int_Enable(WDT_HandleTypeDef* hwdt);
109 /************************************************************************
110  * function   : WDT_Int_Disable
111  * Description: WDT int disable
112  * input : none
113  *
114  * return: none
115  ************************************************************************/
116  void HAL_WDT_Int_Disable(WDT_HandleTypeDef* hwdt);
117 
118 #endif
119