1 
2 /***********************************************************************
3  * Filename    : HAL_IWDT.h
4  * Description : IHAL WDT driver header file
5  * Author(s)   : CWT
6  * version     : V1.0
7  * Modify date : 2020-04-17
8  ***********************************************************************/
9 
10 #ifndef __HAL_IWDT_H__
11 #define __HAL_IWDT_H__
12 
13 #include "ACM32Fxx_HAL.h"
14 
15 
16 /****************  Bit definition for IWDT register  ***********************/
17 
18 
19 /*----------------------macro definition------------------------*/
20 #define IWDT_ENABLE_COMMAND  (0xCCCCU)
21 #define IWDT_DISABLE_COMMAND (0xEF01ABCD)
22 #define IWDT_WRITE_ENABLE_COMMAND  (0x5555U)
23 #define IWDT_WAKEUP_ENABLE_COMMAND  (0x6666U)
24 #define IWDT_WAKEUP_DISABLE_COMMAND  (0x9999U)
25 #define IWDT_RELOAD_COMMAND  (0xAAAAU)
26 
27 #define IWDT_RELOAD_MAX_VALUE  (0x0FFFU)
28 
29 /*----------------------type definition------------------------*/
30 typedef enum _IWDT_CLOCK_PRESCALER{
31     IWDT_CLOCK_PRESCALER_4   = 0,
32     IWDT_CLOCK_PRESCALER_8   = 1,
33     IWDT_CLOCK_PRESCALER_16  = 2,
34     IWDT_CLOCK_PRESCALER_32  = 3,
35     IWDT_CLOCK_PRESCALER_64  = 4,
36     IWDT_CLOCK_PRESCALER_128 = 5,
37     IWDT_CLOCK_PRESCALER_256 = 6,
38 }IWDT_CLOCK_PRESCALER;
39 
40 typedef struct
41 {
42     uint32_t Prescaler;
43     uint32_t Reload;
44     uint32_t Window;
45     uint32_t Wakeup;
46 } IWDT_InitTypeDef;
47 
48 typedef struct
49 {
50     IWDT_TypeDef                 *Instance;  /*!< Register base address    */
51     IWDT_InitTypeDef             Init;       /*!< IWDT required parameters */
52 } IWDT_HandleTypeDef;
53 
54 
55  HAL_StatusTypeDef HAL_IWDT_Init(IWDT_HandleTypeDef * hidt);
56  HAL_StatusTypeDef HAL_IWDT_Kick_Watchdog_Wait_For_Done(IWDT_HandleTypeDef * hidt);
57 #endif
58