/*! * \file xc6xxx_hal_wdt.h * * \brief The header of xc6xxx_hal_wdt.c * * \copyright Revised BSD License, see section \ref LICENSE. * * \code * * _ __ _ ________ _ * | |/ /(_)___ / ____/ /_ (_)___ * | // / __ \/ / / __ \/ / __ \ * / |/ / / / / /___/ / / / / /_/ / * /_/|_/_/_/ /_/\____/_/ /_/_/ .___/ * /_/ * (C) 2022-2025 XinChip * * \endcode * * \author ( XinChip ) Alex-J * * \author ( XinChip ) */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __XC_DRV_WDT_H_ #define __XC_DRV_WDT_H_ /*----------------------------------------------------------------------------------- INCLUDE HEADE FILES ------------------------------------------------------------------------------------*/ #include "xc6xxx.h" #define WDT_SYS_RSTN_MASK_DISABLE (0x00) #define WDT_SYS_RSTN_MASK_ENABLE (0x01) #define WDT_M0_RSTN_MASK_ENABLE (0x02) #define WDT_M0_RSTN_MASK_DISABLE (0x00) #define WDT_CR_RPL_2PCLK (0UL) #define WDT_CR_RPL_4PCLK (1UL) #define WDT_CR_RPL_8PCLK (2UL) #define WDT_CR_RPL_16PCLK (3UL) #define WDT_CR_RPL_32PCLK (4UL) #define WDT_CR_RPL_64PCLK (5UL) #define WDT_CR_RPL_128PCLK (6UL) #define WDT_CR_RPL_256PCLK (7UL) #define WDT_CRR_CRR_ENABLE (0x76UL) #define WDT_CLK_32K_RESET_MODE0_2048MS 0x00 #define WDT_CLK_32K_RESET_MODE0_4096MS 0x01 #define WDT_CLK_32K_RESET_MODE0_8192MS 0x02 #define WDT_CLK_32K_RESET_MODE0_16384MS 0x03 #define WDT_CLK_32K_RESET_MODE0_32768MS 0x04 #define WDT_CLK_32K_RESET_MODE0_65536MS 0x05 #define WDT_CLK_32K_RESET_MODE0_131072MS 0x06 #define WDT_CLK_32K_RESET_MODE0_262144MS 0x07 #define WDT_CLK_32K_RESET_MODE0_524288MS 0x08 #define WDT_CLK_32K_RESET_MODE0_1048576MS 0x09 #define WDT_CLK_32K_RESET_MODE0_2097152MS 0x0a #define WDT_CLK_32K_RESET_MODE0_4194304MS 0x0b #define WDT_CLK_32K_RESET_MODE0_8388608MS 0x0c #define WDT_CLK_32K_RESET_MODE0_16777216MS 0x0d #define WDT_CLK_32K_RESET_MODE0_33554432MS 0x0e #define WDT_CLK_32K_RESET_MODE0_67108864MS 0x0f #define WDT_CLK_16M_RESET_MODE0_8192US 0x00 #define WDT_CLK_16M_RESET_MODE0_16384US 0x01 #define WDT_CLK_16M_RESET_MODE0_32768US 0x02 #define WDT_CLK_16M_RESET_MODE0_65536US 0x03 #define WDT_CLK_16M_RESET_MODE0_131072US 0x04 #define WDT_CLK_16M_RESET_MODE0_262144US 0x05 #define WDT_CLK_16M_RESET_MODE0_524288US 0x06 #define WDT_CLK_16M_RESET_MODE0_1048576US 0x07 #define WDT_CLK_16M_RESET_MODE0_2097152US 0x08 #define WDT_CLK_16M_RESET_MODE0_4194304US 0x09 #define WDT_CLK_16M_RESET_MODE0_8388608US 0x0a #define WDT_CLK_16M_RESET_MODE0_16777216US 0x0b #define WDT_CLK_16M_RESET_MODE0_33554432US 0x0c #define WDT_CLK_16M_RESET_MODE0_67108864US 0x0d #define WDT_CLK_16M_RESET_MODE0_134217728US 0x0e #define WDT_CLK_16M_RESET_MODE0_268435456US 0x0f #define WDT_CLK_32M_RESET_MODE0_4096US 0x00 #define WDT_CLK_32M_RESET_MODE0_8192US 0x01 #define WDT_CLK_32M_RESET_MODE0_16384US 0x02 #define WDT_CLK_32M_RESET_MODE0_32768US 0x03 #define WDT_CLK_32M_RESET_MODE0_65536US 0x04 #define WDT_CLK_32M_RESET_MODE0_131072US 0x05 #define WDT_CLK_32M_RESET_MODE0_262144US 0x06 #define WDT_CLK_32M_RESET_MODE0_524288US 0x07 #define WDT_CLK_32M_RESET_MODE0_1048576US 0x08 #define WDT_CLK_32M_RESET_MODE0_2097152US 0x09 #define WDT_CLK_32M_RESET_MODE0_4194304US 0x0a #define WDT_CLK_32M_RESET_MODE0_8388608US 0x0b #define WDT_CLK_32M_RESET_MODE0_16777216US 0x0c #define WDT_CLK_32M_RESET_MODE0_33554432US 0x0d #define WDT_CLK_32M_RESET_MODE0_67108864US 0x0e #define WDT_CLK_32M_RESET_MODE0_134217728US 0x0f #define WDT_CLK_48M_RESET_MODE0_2731US 0x00 #define WDT_CLK_48M_RESET_MODE0_5461US 0x01 #define WDT_CLK_48M_RESET_MODE0_10923US 0x02 #define WDT_CLK_48M_RESET_MODE0_21845US 0x03 #define WDT_CLK_48M_RESET_MODE0_43691US 0x04 #define WDT_CLK_48M_RESET_MODE0_87381US 0x05 #define WDT_CLK_48M_RESET_MODE0_174763US 0x06 #define WDT_CLK_48M_RESET_MODE0_349525US 0x07 #define WDT_CLK_48M_RESET_MODE0_699051US 0x08 #define WDT_CLK_48M_RESET_MODE0_1398101US 0x09 #define WDT_CLK_48M_RESET_MODE0_2796203US 0x0a #define WDT_CLK_48M_RESET_MODE0_5592405US 0x0b #define WDT_CLK_48M_RESET_MODE0_11184811US 0x0c #define WDT_CLK_48M_RESET_MODE0_22369621US 0x0d #define WDT_CLK_48M_RESET_MODE0_44739243US 0x0e #define WDT_CLK_48M_RESET_MODE0_89478485US 0x0f #define WDT_CLK_64M_RESET_MDOE0_2048US 0x00 #define WDT_CLK_64M_RESET_MDOE0_4096US 0x01 #define WDT_CLK_64M_RESET_MDOE0_8192US 0x02 #define WDT_CLK_64M_RESET_MDOE0_16384US 0x03 #define WDT_CLK_64M_RESET_MDOE0_32768US 0x04 #define WDT_CLK_64M_RESET_MDOE0_65536US 0x05 #define WDT_CLK_64M_RESET_MDOE0_131072US 0x06 #define WDT_CLK_64M_RESET_MDOE0_262144US 0x07 #define WDT_CLK_64M_RESET_MDOE0_524288US 0x08 #define WDT_CLK_64M_RESET_MDOE0_1048576US 0x09 #define WDT_CLK_64M_RESET_MDOE0_2097152US 0x0a #define WDT_CLK_64M_RESET_MDOE0_4194304US 0x0b #define WDT_CLK_64M_RESET_MDOE0_8388608US 0x0c #define WDT_CLK_64M_RESET_MDOE0_16777216US 0x0d #define WDT_CLK_64M_RESET_MDOE0_33554432US 0x0e #define WDT_CLK_64M_RESET_MDOE0_67108864US 0x0f #define WDT_CLK_32K_RESET_MODE1_4096MS 0x00 #define WDT_CLK_32K_RESET_MODE1_8192MS 0x01 #define WDT_CLK_32K_RESET_MODE1_16384MS 0x02 #define WDT_CLK_32K_RESET_MODE1_32768MS 0x03 #define WDT_CLK_32K_RESET_MODE1_65536MS 0x04 #define WDT_CLK_32K_RESET_MODE1_131072MS 0x05 #define WDT_CLK_32K_RESET_MODE1_262144MS 0x06 #define WDT_CLK_32K_RESET_MODE1_524288MS 0x07 #define WDT_CLK_32K_RESET_MODE1_1048576MS 0x08 #define WDT_CLK_32K_RESET_MODE1_2097152MS 0x09 #define WDT_CLK_32K_RESET_MODE1_4194304MS 0x0a #define WDT_CLK_32K_RESET_MODE1_8388608MS 0x0b #define WDT_CLK_32K_RESET_MODE1_16777216MS 0x0c #define WDT_CLK_32K_RESET_MODE1_33554432MS 0x0d #define WDT_CLK_32K_RESET_MODE1_67108864MS 0x0e #define WDT_CLK_32K_RESET_MODE1_134217728MS 0x0f #define WDT_CLK_16M_RESET_MODE1_16384US 0x00 #define WDT_CLK_16M_RESET_MODE1_32768US 0x01 #define WDT_CLK_16M_RESET_MODE1_65536US 0x02 #define WDT_CLK_16M_RESET_MODE1_131072US 0x03 #define WDT_CLK_16M_RESET_MODE1_262144US 0x04 #define WDT_CLK_16M_RESET_MODE1_524288US 0x05 #define WDT_CLK_16M_RESET_MODE1_1048576US 0x06 #define WDT_CLK_16M_RESET_MODE1_2097152US 0x07 #define WDT_CLK_16M_RESET_MODE1_4194304US 0x08 #define WDT_CLK_16M_RESET_MODE1_8388608US 0x09 #define WDT_CLK_16M_RESET_MODE1_16777216US 0x0a #define WDT_CLK_16M_RESET_MODE1_33554432US 0x0b #define WDT_CLK_16M_RESET_MODE1_67108864US 0x0c #define WDT_CLK_16M_RESET_MODE1_134217728US 0x0d #define WDT_CLK_16M_RESET_MODE1_268435456US 0x0e #define WDT_CLK_16M_RESET_MODE1_536870912US 0x0f #define WDT_CLK_32M_RESET_MODE1_8192US 0x00 #define WDT_CLK_32M_RESET_MODE1_16384US 0x01 #define WDT_CLK_32M_RESET_MODE1_32768US 0x02 #define WDT_CLK_32M_RESET_MODE1_65536US 0x03 #define WDT_CLK_32M_RESET_MODE1_131072US 0x04 #define WDT_CLK_32M_RESET_MODE1_262144US 0x05 #define WDT_CLK_32M_RESET_MODE1_524288US 0x06 #define WDT_CLK_32M_RESET_MODE1_1048576US 0x07 #define WDT_CLK_32M_RESET_MODE1_2097152US 0x08 #define WDT_CLK_32M_RESET_MODE1_4194304US 0x09 #define WDT_CLK_32M_RESET_MODE1_8388608US 0x0a #define WDT_CLK_32M_RESET_MODE1_16777216US 0x0b #define WDT_CLK_32M_RESET_MODE1_33554432US 0x0c #define WDT_CLK_32M_RESET_MODE1_67108864US 0x0d #define WDT_CLK_32M_RESET_MODE1_134217728US 0x0e #define WDT_CLK_32M_RESET_MODE1_268435456US 0x0f #define WDT_CLK_48M_RESET_MODE1_5461US 0x00 #define WDT_CLK_48M_RESET_MODE1_10923US 0x01 #define WDT_CLK_48M_RESET_MODE1_21845US 0x02 #define WDT_CLK_48M_RESET_MODE1_43691US 0x03 #define WDT_CLK_48M_RESET_MODE1_87381US 0x04 #define WDT_CLK_48M_RESET_MODE1_174763US 0x05 #define WDT_CLK_48M_RESET_MODE1_349525US 0x06 #define WDT_CLK_48M_RESET_MODE1_699051US 0x07 #define WDT_CLK_48M_RESET_MODE1_1398101US 0x08 #define WDT_CLK_48M_RESET_MODE1_2796203US 0x09 #define WDT_CLK_48M_RESET_MODE1_5592405US 0x0a #define WDT_CLK_48M_RESET_MODE1_11184811US 0x0b #define WDT_CLK_48M_RESET_MODE1_22369621US 0x0c #define WDT_CLK_48M_RESET_MODE1_44739243US 0x0d #define WDT_CLK_48M_RESET_MODE1_89478485US 0x0e #define WDT_CLK_48M_RESET_MODE1_178956971US 0x0f #define WDT_CLK_64M_RESET_MODE1_4096US 0x00 #define WDT_CLK_64M_RESET_MODE1_8192US 0x01 #define WDT_CLK_64M_RESET_MODE1_16384US 0x02 #define WDT_CLK_64M_RESET_MODE1_32768US 0x03 #define WDT_CLK_64M_RESET_MODE1_65536US 0x04 #define WDT_CLK_64M_RESET_MODE1_131072US 0x05 #define WDT_CLK_64M_RESET_MODE1_262144US 0x06 #define WDT_CLK_64M_RESET_MODE1_524288US 0x07 #define WDT_CLK_64M_RESET_MODE1_1048576US 0x08 #define WDT_CLK_64M_RESET_MODE1_2097152US 0x09 #define WDT_CLK_64M_RESET_MODE1_4194304US 0x0a #define WDT_CLK_64M_RESET_MODE1_8388608US 0x0b #define WDT_CLK_64M_RESET_MODE1_16777216US 0x0c #define WDT_CLK_64M_RESET_MODE1_33554432US 0x0d #define WDT_CLK_64M_RESET_MODE1_67108864US 0x0e #define WDT_CLK_64M_RESET_MODE1_134217728US 0x0f /*------------------------------------------------------------------------------------ TypeDef -------------------------------------------------------------------------------------*/ typedef enum { WDT_WORK_MODE0, WDT_WORK_MODE1 } WDT_WorkModeTypeDef; typedef enum { WDT_WORK_32M, WDT_WORK_32K, } WDT_WorkSrcTypeDef; typedef struct { uint32_t ReloadValue; WDT_WorkModeTypeDef WorkMode; WDT_WorkSrcTypeDef PclkSel; } WDT_InitCfg_t; /*------------------------------------------------------------------------------------ Inline Functions -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------ Exported Functions -------------------------------------------------------------------------------------*/ void xc_wdt_init(WDT_InitCfg_t *WDT_InitStruct); void xc_wdt_start(void); void xc_wdt_stop(void); void xc_wdt_refresh(void); void xc_wdt_reload(void); #endif /* __XC6xxx_HAL_WDT_H_ */