summaryrefslogtreecommitdiff
path: root/bsp/Vango/v85xxp/libraries/VangoV85xxP_standard_peripheral/Source/lib_ana.c
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 ******************************/