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_WRITE_ENABLE_COMMAND  (0x5555U)
22 #define IWDT_WAKEUP_ENABLE_COMMAND  (0x6666U)
23 #define IWDT_WAKEUP_DISABLE_COMMAND  (0x9999U)
24 #define IWDT_RELOAD_COMMAND  (0xAAAAU)
25 
26 #define IWDT_RELOAD_MAX_VALUE  (0x0FFFU)
27 
28 /*----------------------type definition------------------------*/
29 typedef enum _IWDT_CLOCK_PRESCALER{
30     IWDT_CLOCK_PRESCALER_4   = 0,
31     IWDT_CLOCK_PRESCALER_8   = 1,
32     IWDT_CLOCK_PRESCALER_16  = 2,
33     IWDT_CLOCK_PRESCALER_32  = 3,
34     IWDT_CLOCK_PRESCALER_64  = 4,
35     IWDT_CLOCK_PRESCALER_128 = 5,
36     IWDT_CLOCK_PRESCALER_256 = 6,
37 }IWDT_CLOCK_PRESCALER;
38 
39 typedef struct
40 {
41     uint32_t Prescaler;
42     uint32_t Reload;
43     uint32_t Window;
44     uint32_t Wakeup;
45 } IWDT_InitTypeDef;
46 
47 typedef struct
48 {
49     IWDT_TypeDef                 *Instance;  /*!< Register base address    */
50     IWDT_InitTypeDef             Init;       /*!< IWDT required parameters */
51 } IWDT_HandleTypeDef;
52 
53 
54  HAL_StatusTypeDef HAL_IWDT_Init(IWDT_HandleTypeDef * hidt);
55  HAL_StatusTypeDef HAL_IWDT_Kick_Watchdog_Wait_For_Done(IWDT_HandleTypeDef * hidt);
56 #endif
57