blob: 94d58e9034ee34f14bc78a1bb7b15e8ffabba65a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/**
******************************************************************************
* @file lib_wdt.c
* @author Application Team
* @version V4.4.0
* @date 2018-09-27
* @brief WDT library.
******************************************************************************
* @attention
*
******************************************************************************
*/
#include "lib_wdt.h"
#define WDTPASS_KEY 0xAA5555AA
#define WDTCLR_KEY 0x55AAAA55
/**
* @brief Enable WDT timer.
* @param None
* @retval None
*/
void WDT_Enable(void)
{
PMU->WDTPASS = WDTPASS_KEY;
PMU->WDTEN |= PMU_WDTEN_WDTEN;
PMU->WDTPASS = WDTPASS_KEY;
PMU->WDTEN |= PMU_WDTEN_WDTEN;
}
/**
* @brief Disable WDT timer.
* @param None
* @retval None
*/
void WDT_Disable(void)
{
PMU->WDTPASS = WDTPASS_KEY;
PMU->WDTEN &= ~PMU_WDTEN_WDTEN;
PMU->WDTPASS = WDTPASS_KEY;
PMU->WDTEN &= ~PMU_WDTEN_WDTEN;
}
/**
* @brief Clear WDT counter.
* @param None
* @retval None
*/
void WDT_Clear(void)
{
PMU->WDTCLR = WDTCLR_KEY;
}
/**
* @brief Set WDT counting period.
* @param counting period:
WDT_2_SECS
WDT_1_SECS
WDT_0_5_SECS
WDT_0_25_SECS
* @retval None
*/
void WDT_SetPeriod(uint32_t period)
{
uint32_t tmp;
assert_parameters(IS_WDT_PERIOD(period));
tmp = PMU->WDTEN;
tmp &= ~PMU_WDTEN_WDTSEL;
tmp |= period;
PMU->WDTPASS = WDTPASS_KEY;
PMU->WDTEN = tmp;
}
/**
* @brief Get WDT counter value.
* @param None
* @retval current counter value.
*/
uint16_t WDT_GetCounterValue(void)
{
return (PMU->WDTCLR & PMU_WDTCLR_WDTCNT);
}
/*********************************** END OF FILE ******************************/
|