HAL_IWDT.h 1.6 KB
Newer Older
Z
ze9hyr 已提交
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