M471M/R1/S BSP V3.01.000
The Board Support Package for M4521
wdt.h
Go to the documentation of this file.
1/**************************************************************************/
8#ifndef __WDT_H__
9#define __WDT_H__
10
11#ifdef __cplusplus
12extern "C"
13{
14#endif
15
16
28/*---------------------------------------------------------------------------------------------------------*/
29/* WDT Time-out Interval Period Constant Definitions */
30/*---------------------------------------------------------------------------------------------------------*/
31#define WDT_TIMEOUT_2POW4 (0UL << WDT_CTL_TOUTSEL_Pos)
32#define WDT_TIMEOUT_2POW6 (1UL << WDT_CTL_TOUTSEL_Pos)
33#define WDT_TIMEOUT_2POW8 (2UL << WDT_CTL_TOUTSEL_Pos)
34#define WDT_TIMEOUT_2POW10 (3UL << WDT_CTL_TOUTSEL_Pos)
35#define WDT_TIMEOUT_2POW12 (4UL << WDT_CTL_TOUTSEL_Pos)
36#define WDT_TIMEOUT_2POW14 (5UL << WDT_CTL_TOUTSEL_Pos)
37#define WDT_TIMEOUT_2POW16 (6UL << WDT_CTL_TOUTSEL_Pos)
38#define WDT_TIMEOUT_2POW18 (7UL << WDT_CTL_TOUTSEL_Pos)
40/*---------------------------------------------------------------------------------------------------------*/
41/* WDT Reset Delay Period Constant Definitions */
42/*---------------------------------------------------------------------------------------------------------*/
43#define WDT_RESET_DELAY_1026CLK (0UL << WDT_ALTCTL_RSTDSEL_Pos)
44#define WDT_RESET_DELAY_130CLK (1UL << WDT_ALTCTL_RSTDSEL_Pos)
45#define WDT_RESET_DELAY_18CLK (2UL << WDT_ALTCTL_RSTDSEL_Pos)
46#define WDT_RESET_DELAY_3CLK (3UL << WDT_ALTCTL_RSTDSEL_Pos) /* end of group WDT_EXPORTED_CONSTANTS */
49
50
64#define WDT_CLEAR_RESET_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk)) | WDT_CTL_RSTF_Msk)
65
75#define WDT_CLEAR_TIMEOUT_INT_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_RSTF_Msk | WDT_CTL_WKF_Msk)) | WDT_CTL_IF_Msk)
76
86#define WDT_CLEAR_TIMEOUT_WAKEUP_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_RSTF_Msk | WDT_CTL_IF_Msk)) | WDT_CTL_WKF_Msk)
87
98#define WDT_GET_RESET_FLAG() ((WDT->CTL & WDT_CTL_RSTF_Msk)? 1 : 0)
99
110#define WDT_GET_TIMEOUT_INT_FLAG() ((WDT->CTL & WDT_CTL_IF_Msk)? 1 : 0)
111
122#define WDT_GET_TIMEOUT_WAKEUP_FLAG() ((WDT->CTL & WDT_CTL_WKF_Msk)? 1 : 0)
123
136#define WDT_RESET_COUNTER() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk | WDT_CTL_RSTF_Msk)) | WDT_CTL_RSTCNT_Msk)
137
147static __INLINE void WDT_Close(void)
148{
149 WDT->CTL = 0;
150 return;
151}
152
162static __INLINE void WDT_EnableInt(void)
163{
164 WDT->CTL |= WDT_CTL_INTEN_Msk;
165 return;
166}
167
177static __INLINE void WDT_DisableInt(void)
178{
179 // Do not touch another write 1 clear bits
181 return;
182}
183
184void WDT_Open(uint32_t u32TimeoutInterval, uint32_t u32ResetDelay, uint32_t u32EnableReset, uint32_t u32EnableWakeup);
185 /* end of group WDT_EXPORTED_FUNCTIONS */
187 /* end of group WDT_Driver */
189 /* end of group Standard_Driver */
191
192#ifdef __cplusplus
193}
194#endif
195
196#endif //__WDT_H__
197
198
#define WDT_CTL_RSTF_Msk
Definition: M471M_R1_S.h:13585
#define WDT_CTL_WKF_Msk
Definition: M471M_R1_S.h:13594
#define WDT_CTL_IF_Msk
Definition: M471M_R1_S.h:13588
#define WDT_CTL_INTEN_Msk
Definition: M471M_R1_S.h:13597
#define WDT
Definition: M471M_R1_S.h:13832
static __INLINE void WDT_Close(void)
Stop WDT Counting.
Definition: wdt.h:147
static __INLINE void WDT_DisableInt(void)
Disable WDT Time-out Interrupt.
Definition: wdt.h:177
static __INLINE void WDT_EnableInt(void)
Enable WDT Time-out Interrupt.
Definition: wdt.h:162
void WDT_Open(uint32_t u32TimeoutInterval, uint32_t u32ResetDelay, uint32_t u32EnableReset, uint32_t u32EnableWakeup)
Initialize WDT and start counting.
Definition: wdt.c:49