1 /**
2   ******************************************************************************
3   * @file    lib_ana.c
4   * @author  Application Team
5   * @version V4.4.0
6   * @date    2018-09-27
7   * @brief   Analog library.
8   ******************************************************************************
9   * @attention
10   *
11   *
12   ******************************************************************************
13   */
14 
15 /* Includes ------------------------------------------------------------------*/
16 #include "lib_ana.h"
17 
18 
19 /**
20   * @brief  Get analog status.
21   * @param  StatusMask:
22                 ANA_STATUS_AVCCLV
23                 ANA_STATUS_VDCINDROP
24                 ANA_STATUS_VDDALARM
25                 ANA_STATUS_COMP2
26                 ANA_STATUS_COMP1
27                 ANA_STATUS_LOCKL
28                 ANA_STATUS_LOCKH
29   * @retval Analog status
30   */
ANA_GetStatus(uint32_t StatusMask)31 uint8_t ANA_GetStatus(uint32_t StatusMask)
32 {
33   /* Check parameters */
34   assert_parameters(IS_ANA_STATUS(StatusMask));
35 
36   if (ANA->COMPOUT & StatusMask)
37   {
38     return 1;
39   }
40   else
41   {
42     return 0;
43   }
44 }
45 
46 /**
47   * @brief  Get interrupt status.
48   * @param  IntMask:
49                 ANA_INT_TADC_OVER
50                 ANA_INT_REGERR
51                 ANA_INT_SME
52                 ANA_INT_AVCCLV
53                 ANA_INT_VDCINDROP
54                 ANA_INT_VDDALARM
55                 ANA_INT_COMP2
56                 ANA_INT_COMP1
57                 ANA_INT_ADCA
58                 ANA_INT_ADCM
59   * @retval interrupt status.
60   */
ANA_GetINTStatus(uint32_t IntMask)61 uint8_t ANA_GetINTStatus(uint32_t IntMask)
62 {
63   /* Check parameters */
64   assert_parameters(IS_ANA_INTSTSR(IntMask));
65 
66   if (ANA->INTSTS&IntMask)
67   {
68     return 1;
69   }
70   else
71   {
72     return 0;
73   }
74 }
75 
76 /**
77   * @brief  Clear interrupt status.
78   * @param  IntMask:
79                 ANA_INT_TADC_OVER
80                 ANA_INT_REGERR
81                 ANA_INT_SME
82                 ANA_INT_AVCCLV
83                 ANA_INT_VDCINDROP
84                 ANA_INT_VDDALARM
85                 ANA_INT_COMP2
86                 ANA_INT_COMP1
87                 ANA_INT_ADCA
88                 ANA_INT_ADCM
89   * @retval None
90   */
ANA_ClearINTStatus(uint32_t IntMask)91 void ANA_ClearINTStatus(uint32_t IntMask)
92 {
93   /* Check parameters */
94   assert_parameters(IS_ANA_INTSTSC(IntMask));
95 
96   ANA->INTSTS = IntMask;
97 }
98 
99 /**
100   * @brief  ANA interrupt configure.
101   * @param  IntMask:
102                 ANA_INT_REGERR
103                 ANA_INT_SME
104                 ANA_INT_AVCCLV
105                 ANA_INT_VDCINDROP
106                 ANA_INT_VDDALARM
107                 ANA_INT_COMP2
108                 ANA_INT_COMP1
109                 ANA_INT_ADCA
110                 ANA_INT_ADCM
111             NewState:
112                 ENABLE
113                 DISABLE
114   * @retval None
115   */
ANA_INTConfig(uint32_t IntMask,uint32_t NewState)116 void ANA_INTConfig(uint32_t IntMask, uint32_t NewState)
117 {
118   uint32_t tmp;
119 
120   /* Check parameters */
121   assert_parameters(IS_ANA_INT(IntMask));
122   assert_parameters(IS_FUNCTIONAL_STATE(NewState));
123 
124   tmp = ANA->INTEN;
125   if (NewState == ENABLE)
126   {
127     tmp |= IntMask;
128   }
129   else
130   {
131     tmp &= ~IntMask;
132   }
133   ANA->INTEN = tmp;
134 }
135 
136 /*********************************** END OF FILE ******************************/
137