THB2/bthome_phy6222/SDK/components/driver/watchdog/watchdog.h

60 lines
1.2 KiB
C

/*************
watchdog.h
SDK_LICENSE
***************/
#ifndef __WATCHDOG_H__
#define __WATCHDOG_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "types.h"
#include "bus_dev.h"
#define WDG_2S 0
#define WDG_4S 1
#define WDG_8S 2
#define WDG_16S 3
#define WDG_32S 4
#define WDG_64S 5
#define WDG_128S 6
#define WDG_256S 7
#define WDG_USE_POLLING_MODE 0//this mode is recommended
#define WDG_USE_INT_MODE 1
#define HAL_WDG_CFG_MODE WDG_USE_POLLING_MODE
/*
hal watchdog init function.it will be regist in wakeupinit .
watchdog will be restored in wakeup process
*/
__ATTR_SECTION_SRAM__ void hal_watchdog_init(void);
/*
watchdog interrupt function.
in this function,feed watchdog and clear int flag.
*/
void hal_WATCHDOG_IRQHandler(void);
/*
watchdog feed function.
we also can feed watchdog in our code.
for example,if disable all int for a long time,but we want to avoid the watchdog reset.
in most case,it is not needed.
*/
void hal_watchdog_feed(void);
/*
watchdog init function.it runs in polling mode.
if use watchdog,please init it in main before system run,valid parameter 0~7.
if not,do not init in main.
*/
int watchdog_config(uint8 cycle);
#ifdef __cplusplus
}
#endif
#endif