NUC472_NUC442_BSP V3.03.004
The Board Support Package for NUC472/NUC442
wdt.h
Go to the documentation of this file.
1/**************************************************************************/
12#ifndef __WDT_H__
13#define __WDT_H__
14
15#ifdef __cplusplus
16extern "C"
17{
18#endif
19
20
32#define WDT_TIMEOUT_2POW4 (0UL << WDT_CTL_TOUTSEL_Pos)
33#define WDT_TIMEOUT_2POW6 (1UL << WDT_CTL_TOUTSEL_Pos)
34#define WDT_TIMEOUT_2POW8 (2UL << WDT_CTL_TOUTSEL_Pos)
35#define WDT_TIMEOUT_2POW10 (3UL << WDT_CTL_TOUTSEL_Pos)
36#define WDT_TIMEOUT_2POW12 (4UL << WDT_CTL_TOUTSEL_Pos)
37#define WDT_TIMEOUT_2POW14 (5UL << WDT_CTL_TOUTSEL_Pos)
38#define WDT_TIMEOUT_2POW16 (6UL << WDT_CTL_TOUTSEL_Pos)
39#define WDT_TIMEOUT_2POW18 (7UL << WDT_CTL_TOUTSEL_Pos)
41#define WDT_RESET_DELAY_3CLK (3UL << WDT_ALTCTL_RSTDSEL_Pos)
42#define WDT_RESET_DELAY_18CLK (2UL << WDT_ALTCTL_RSTDSEL_Pos)
43#define WDT_RESET_DELAY_130CLK (1UL << WDT_ALTCTL_RSTDSEL_Pos)
44#define WDT_RESET_DELAY_1026CLK (0UL << WDT_ALTCTL_RSTDSEL_Pos) /* end of group NUC472_442_WDT_EXPORTED_CONSTANTS */
47
48
59#define WDT_CLEAR_RESET_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk)) | WDT_CTL_RSTF_Msk)
60
67#define WDT_CLEAR_TIMEOUT_INT_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_RSTF_Msk | WDT_CTL_WKF_Msk)) | WDT_CTL_IF_Msk)
68
75#define WDT_CLEAR_TIMEOUT_WAKEUP_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_RSTF_Msk | WDT_CTL_IF_Msk)) | WDT_CTL_WKF_Msk)
76
84#define WDT_GET_RESET_FLAG() (WDT->CTL & WDT_CTL_RSTF_Msk ? 1 : 0)
85
93#define WDT_GET_TIMEOUT_INT_FLAG() (WDT->CTL & WDT_CTL_IF_Msk ? 1 : 0)
94
102#define WDT_GET_TIMEOUT_WAKEUP_FLAG() (WDT->CTL & WDT_CTL_WKF_Msk ? 1 : 0)
103
110#define WDT_RESET_COUNTER() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk | WDT_CTL_RSTF_Msk)) | WDT_CTL_RSTCNT_Msk)
111
117__STATIC_INLINE void WDT_Close(void)
118{
119 WDT->CTL = 0;
120 return;
121}
122
128__STATIC_INLINE void WDT_EnableInt(void)
129{
130 WDT->CTL |= WDT_CTL_INTEN_Msk;
131 return;
132}
133
139__STATIC_INLINE void WDT_DisableInt(void)
140{
141 // Do not touch write 1 clear bits
143 return;
144}
145
146void WDT_Open(uint32_t u32TimeoutInterval,
147 uint32_t u32ResetDelay,
148 uint32_t u32EnableReset,
149 uint32_t u32EnableWakeup);
150 /* end of group NUC472_442_WDT_EXPORTED_FUNCTIONS */
152 /* end of group NUC472_442_WDT_Driver */
154 /* end of group NUC472_442_Device_Driver */
156
157#ifdef __cplusplus
158}
159#endif
160
161#endif //__WDT_H__
162
163/*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/
#define WDT_CTL_RSTF_Msk
Definition: NUC472_442.h:28530
#define WDT_CTL_IF_Msk
Definition: NUC472_442.h:28533
#define WDT_CTL_INTEN_Msk
Definition: NUC472_442.h:28542
#define WDT
Definition: NUC472_442.h:28826
__STATIC_INLINE void WDT_Close(void)
This function stops WDT counting and disable WDT module.
Definition: wdt.h:117
__STATIC_INLINE void WDT_EnableInt(void)
This function enables the WDT time-out interrupt.
Definition: wdt.h:128
void WDT_Open(uint32_t u32TimeoutInterval, uint32_t u32ResetDelay, uint32_t u32EnableReset, uint32_t u32EnableWakeup)
This function make WDT module start counting with different time-out interval.
Definition: wdt.c:47
__STATIC_INLINE void WDT_DisableInt(void)
This function disables the WDT time-out interrupt.
Definition: wdt.h:139