blob: 00e47707be40b80ed9a7ff17a05e3cc2495773d0 (
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 V1.1.0
* @date 2019-10-28
* @brief WDT library.
******************************************************************************
* @attention
*
******************************************************************************
*/
#include "lib_wdt.h"
#define WDTPASS_KEY 0xAA5555AA
#define WDTCLR_KEY 0x55AAAA55
/**
* @brief Enables 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 Disables 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 Clears WDT counter.
* @param None
* @retval None
*/
void WDT_Clear(void)
{
PMU->WDTCLR = WDTCLR_KEY;
}
/**
* @brief Configures WDT counting period.
* @param counting period:
WDT_2_SECS
WDT_4_SECS
WDT_8_SECS
WDT_16_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 Gets WDT counter value.
* @param None
* @retval current counter value.
*/
uint16_t WDT_GetCounterValue(void)
{
return (PMU->WDTCLR & PMU_WDTCLR_WDTCNT);
}
/*********************************** END OF FILE ******************************/
|