summaryrefslogtreecommitdiff
path: root/bsp/acm32/acm32f0x0-nucleo/libraries/HAL_Driver/Inc/HAL_IWDT.h
blob: 89783d1be930bf3f6908572fa6c4e2350df23ba3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

/***********************************************************************
 * Filename    : HAL_IWDT.h
 * Description : IHAL WDT driver header file
 * Author(s)   : CWT
 * version     : V1.0
 * Modify date : 2020-04-17
 ***********************************************************************/

#ifndef __HAL_IWDT_H__
#define __HAL_IWDT_H__

#include "ACM32Fxx_HAL.h"


/****************  Bit definition for IWDT register  ***********************/


/*----------------------macro definition------------------------*/
#define IWDT_ENABLE_COMMAND  (0xCCCCU)
#define IWDT_DISABLE_COMMAND (0xEF01ABCD)
#define IWDT_WRITE_ENABLE_COMMAND  (0x5555U)
#define IWDT_WAKEUP_ENABLE_COMMAND  (0x6666U)
#define IWDT_WAKEUP_DISABLE_COMMAND  (0x9999U)
#define IWDT_RELOAD_COMMAND  (0xAAAAU)

#define IWDT_RELOAD_MAX_VALUE  (0x0FFFU)

/*----------------------type definition------------------------*/
typedef enum _IWDT_CLOCK_PRESCALER{
    IWDT_CLOCK_PRESCALER_4   = 0,
    IWDT_CLOCK_PRESCALER_8   = 1,
    IWDT_CLOCK_PRESCALER_16  = 2,
    IWDT_CLOCK_PRESCALER_32  = 3,
    IWDT_CLOCK_PRESCALER_64  = 4,
    IWDT_CLOCK_PRESCALER_128 = 5,
    IWDT_CLOCK_PRESCALER_256 = 6,
}IWDT_CLOCK_PRESCALER;

typedef struct
{
    uint32_t Prescaler;
    uint32_t Reload;
    uint32_t Window;
    uint32_t Wakeup;
} IWDT_InitTypeDef;

typedef struct
{
    IWDT_TypeDef                 *Instance;  /*!< Register base address    */
    IWDT_InitTypeDef             Init;       /*!< IWDT required parameters */
} IWDT_HandleTypeDef;


 HAL_StatusTypeDef HAL_IWDT_Init(IWDT_HandleTypeDef * hidt);
 HAL_StatusTypeDef HAL_IWDT_Kick_Watchdog_Wait_For_Done(IWDT_HandleTypeDef * hidt);
#endif