blob: 766f8303a0437433b6237d2e1787456eb0280015 (
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
/**
******************************************************************************
* @file lib_ana.c
* @author Application Team
* @version V1.1.0
* @date 2019-10-28
* @brief Analog library.
******************************************************************************
* @attention
*
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "lib_ana.h"
/**
* @brief Gets analog status.
* @param StatusMask:
ANA_STATUS_AVCCLV
ANA_STATUS_VDCINDROP
ANA_STATUS_VDDALARM
ANA_STATUS_COMP2
ANA_STATUS_COMP1
ANA_STATUS_LOCKL
ANA_STATUS_LOCKH
* @retval Analog status
*/
uint8_t ANA_GetStatus(uint32_t StatusMask)
{
/* Check parameters */
assert_parameters(IS_ANA_STATUS(StatusMask));
if (ANA->CMPOUT & StatusMask)
{
return 1;
}
else
{
return 0;
}
}
/**
* @brief Gets analog interrupt status.
* @param IntMask:
ANA_INT_UPPER_TH3
ANA_INT_LOWER_TH3
ANA_INT_UPPER_TH2
ANA_INT_LOWER_TH2
ANA_INT_UPPER_TH1
ANA_INT_LOWER_TH1
ANA_INT_UPPER_TH0
ANA_INT_LOWER_TH0
ANA_INT_TADC_OVER
ANA_INT_REGERR
ANA_INT_SLPFAIL_VDCIN
ANA_INT_AVCCLV
ANA_INT_VDCINDROP
ANA_INT_VDDALARM
ANA_INT_COMP2
ANA_INT_COMP1
ANA_INT_ADCA
ANA_INT_ADCM
* @retval interrupt status.
*/
uint8_t ANA_GetINTStatus(uint32_t IntMask)
{
/* Check parameters */
assert_parameters(IS_ANA_INTSTSR(IntMask));
if (ANA->INTSTS&IntMask)
{
return 1;
}
else
{
return 0;
}
}
/**
* @brief Clears analog interrupt status.
* @param IntMask:status to clear, can use the '|' operator.
ANA_INT_UPPER_TH3
ANA_INT_LOWER_TH3
ANA_INT_UPPER_TH2
ANA_INT_LOWER_TH2
ANA_INT_UPPER_TH1
ANA_INT_LOWER_TH1
ANA_INT_UPPER_TH0
ANA_INT_LOWER_TH0
ANA_INT_TADC_OVER
ANA_INT_REGERR
ANA_INT_SLPFAIL_VDCIN
ANA_INT_AVCCLV
ANA_INT_VDCINDROP
ANA_INT_VDDALARM
ANA_INT_COMP2
ANA_INT_COMP1
ANA_INT_ADCA
ANA_INT_ADCM
* @retval None
*/
void ANA_ClearINTStatus(uint32_t IntMask)
{
/* Check parameters */
assert_parameters(IS_ANA_INTSTSC(IntMask));
ANA->INTSTS = IntMask;
}
/**
* @brief Enables or disables analog interrupt.
* @param IntMask:status to clear, can use the '|' operator.
ANA_INT_UPPER_TH3
ANA_INT_LOWER_TH3
ANA_INT_UPPER_TH2
ANA_INT_LOWER_TH2
ANA_INT_UPPER_TH1
ANA_INT_LOWER_TH1
ANA_INT_UPPER_TH0
ANA_INT_LOWER_TH0
ANA_INT_TADC_OVER
ANA_INT_REGERR
ANA_INT_SLPFAIL_VDCIN
ANA_INT_AVCCLV
ANA_INT_VDCINDROP
ANA_INT_VDDALARM
ANA_INT_COMP2
ANA_INT_COMP1
ANA_INT_ADCA
ANA_INT_ADCM
NewState:
ENABLE
DISABLE
* @retval None
*/
void ANA_INTConfig(uint32_t IntMask, uint32_t NewState)
{
uint32_t tmp;
/* Check parameters */
assert_parameters(IS_ANA_INT(IntMask));
assert_parameters(IS_FUNCTIONAL_STATE(NewState));
tmp = ANA->INTEN;
if (NewState == ENABLE)
{
tmp |= IntMask;
}
else
{
tmp &= ~IntMask;
}
ANA->INTEN = tmp;
}
/*********************************** END OF FILE ******************************/
|