BLE5.2 1.0
开发文档说明
xc_drv_wdt.c
浏览该文件的文档.
1
25/*------------------------------------------------------------------------------------
26 INCLUDE HEADE FILES
27--------------------------------------------------------------------------------------*/
28#include "xc_drv_wdt.h"
29
30/*------------------------------------------------------------------------------------
31 Local Variables
32 -------------------------------------------------------------------------------------*/
33static uint8_t reload_val ;
34/*------------------------------------------------------------------------------------
35 Func Prototype
36 -------------------------------------------------------------------------------------*/
37
38/*------------------------------------------------------------------------------------
39 Functions
40-------------------------------------------------------------------------------------*/
41
43{
44 cpr_ctlapbclken_grctl__wdt_pclk_en__setf(ENABLE);
45 cpr_rstctl_ctlapb_sw__wdt_rstn__setf(RSTCTL_ENABLE);
46 cpr_rstctl_ctlapb_sw__wdt_rstn__setf(RSTCTL_DISABLE);
47
48 /*
49 SYS_DISABLE | M0_ENABLE : SYS RST, for low-power reset or quick system reset;
50 SYS_ENABLE | M0_DISABLE: M0 RST, only for m0 reset;
51 SYS_DISABLE | M0_DISABLE: M0 RST, m0 reset and low-power reset;
52 */
53 cpr_rstctl_wdtrst_mask_set(
54 (WDT_SYS_RSTN_MASK_DISABLE | WDT_M0_RSTN_MASK_DISABLE));
55 cpr_lp_ctl__wdt_pclk_sel__setf(wdt_cfg->PclkSel);
56 cpr_lp_ctl__wdt_tclk_en__setf(ENABLE);
57
58 wdt_cr__wdt_rmod__setf(wdt_cfg->WorkMode);
59 wdt_torr__wdt_top__setf(wdt_cfg->ReloadValue);
60 reload_val = wdt_cfg->ReloadValue;
61}
62
63void xc_wdt_start(void)
64{
65 wdt_cr__wdt_rpl__setf(WDT_CR_RPL_4PCLK);
66 wdt_cr__wdt_en__setf(ENABLE);
67 wdt_crr__setf(WDT_CRR_CRR_ENABLE);
68}
69
70void xc_wdt_stop(void)
71{
72 wdt_cr__wdt_en__setf(DISABLE);
73}
74
76{
77 uint8_t val = wdt_icr_get();
78
79 wdt_torr__wdt_top__setf(val);
80}
81
82void xc_wdt_reload(void)
83{
84 uint8_t val = wdt_icr_get();
85
86 wdt_torr__wdt_top__setf(reload_val);
87
88 wdt_crr__setf(WDT_CRR_CRR_ENABLE);
89}
90
92{
93 DEBUG("WDT_Handler\n");
94
96}
WDT_ReloadValueTypeDef ReloadValue
Definition xc_drv_wdt.h:91
WDT_WorkModeTypeDef WorkMode
Definition xc_drv_wdt.h:92
WDT_WorkSrcTypeDef PclkSel
Definition xc_drv_wdt.h:93
void xc_wdt_start(void)
Definition xc_drv_wdt.c:63
void xc_wdt_stop(void)
Definition xc_drv_wdt.c:70
void xc_wdt_reload(void)
Definition xc_drv_wdt.c:82
void xc_wdt_init(WDT_InitCfg_t *wdt_cfg)
Definition xc_drv_wdt.c:42
void WDT_Handler()
Definition xc_drv_wdt.c:91
void xc_wdt_refresh(void)
Definition xc_drv_wdt.c:75
static uint8_t reload_val
Definition xc_drv_wdt.c:33