1 /**
2   ******************************************************************************
3   * @file    lib_ana.h
4   * @author  Application Team
5   * @version V1.1.0
6   * @date    2019-10-28
7   * @brief   Analog library.
8   ******************************************************************************
9   * @attention
10   *
11   *
12   ******************************************************************************
13   */
14 #ifndef __LIB_ANA_H
15 #define __LIB_ANA_H
16 
17 #ifdef __cplusplus
18  extern "C" {
19 #endif
20 
21 #include "target.h"
22 
23 /***** StatusMask (ANA_GetStatus) *****/
24 #define ANA_STATUS_AVCCLV       ANA_CMPOUT_AVCCLV
25 #define ANA_STATUS_VDCINDROP    ANA_CMPOUT_VDCINDROP
26 #define ANA_STATUS_VDDALARM     ANA_CMPOUT_VDDALARM
27 #define ANA_STATUS_COMP2        ANA_CMPOUT_CMP2
28 #define ANA_STATUS_COMP1        ANA_CMPOUT_CMP1
29 #define ANA_STATUS_LOCKL        ANA_CMPOUT_LOCKL
30 #define ANA_STATUS_LOCKH        ANA_CMPOUT_LOCKH
31 
32 /***** IntMask (ANA_GetINTStatus / ANA_ClearINTStatus / ANA_INTConfig) *****/
33 #define ANA_INT_UPPER_TH3       ANA_INTEN_INTEN21
34 #define ANA_INT_LOWER_TH3       ANA_INTEN_INTEN20
35 #define ANA_INT_UPPER_TH2       ANA_INTEN_INTEN19
36 #define ANA_INT_LOWER_TH2       ANA_INTEN_INTEN18
37 #define ANA_INT_UPPER_TH1       ANA_INTEN_INTEN17
38 #define ANA_INT_LOWER_TH1       ANA_INTEN_INTEN16
39 #define ANA_INT_UPPER_TH0       ANA_INTEN_INTEN15
40 #define ANA_INT_LOWER_TH0       ANA_INTEN_INTEN14
41 #define ANA_INT_TADC_OVER       ANA_INTEN_INTEN13
42 #define ANA_INT_REGERR          ANA_INTEN_INTEN12
43 #define ANA_INT_SLPFAIL_VDCIN   ANA_INTEN_INTEN11
44 #define ANA_INT_AVCCLV          ANA_INTEN_INTEN10
45 #define ANA_INT_VDCINDROP       ANA_INTEN_INTEN8
46 #define ANA_INT_VDDALARM        ANA_INTEN_INTEN7
47 #define ANA_INT_COMP2           ANA_INTEN_INTEN3
48 #define ANA_INT_COMP1           ANA_INTEN_INTEN2
49 #define ANA_INT_ADCA            ANA_INTEN_INTEN1
50 #define ANA_INT_ADCM            ANA_INTEN_INTEN0
51 #define ANA_INT_Msk             (ANA_INTSTS_INTSTS21     \
52                                 |ANA_INTSTS_INTSTS20    \
53                                 |ANA_INTSTS_INTSTS19    \
54                                 |ANA_INTSTS_INTSTS18    \
55                                 |ANA_INTSTS_INTSTS17    \
56                                 |ANA_INTSTS_INTSTS16    \
57                                 |ANA_INTSTS_INTSTS15    \
58                                 |ANA_INTSTS_INTSTS14    \
59                                 |ANA_INTSTS_INTSTS13    \
60                                 |ANA_INTSTS_INTSTS12   \
61                                 |ANA_INTSTS_INTSTS11   \
62                                 |ANA_INTSTS_INTSTS10   \
63                                 |ANA_INTSTS_INTSTS8    \
64                                 |ANA_INTSTS_INTSTS7    \
65                                 |ANA_INTSTS_INTSTS3    \
66                                 |ANA_INTSTS_INTSTS2    \
67                                 |ANA_INTSTS_INTSTS1    \
68                                 |ANA_INTSTS_INTSTS0)
69 
70 /****************************** ANA Instances *********************************/
71 #define IS_ANA_ALL_INSTANCE(INSTANCE) ((INSTANCE) == ANA)
72 
73 /* Private macros ------------------------------------------------------------*/
74 #define IS_ANA_STATUS(__STATUS__)  (((__STATUS__) == ANA_STATUS_AVCCLV)    ||\
75                                     ((__STATUS__) == ANA_STATUS_VDCINDROP) ||\
76                                     ((__STATUS__) == ANA_STATUS_VDDALARM)  ||\
77                                     ((__STATUS__) == ANA_STATUS_COMP2)     ||\
78                                     ((__STATUS__) == ANA_STATUS_COMP1)     ||\
79                                     ((__STATUS__) == ANA_STATUS_LOCKL)     ||\
80                                     ((__STATUS__) == ANA_STATUS_LOCKH))
81 
82 #define IS_ANA_INTSTSR(__INTSTSR__)  (((__INTSTSR__) == ANA_INT_UPPER_TH3)     ||\
83                                       ((__INTSTSR__) == ANA_INT_LOWER_TH3)     ||\
84                                       ((__INTSTSR__) == ANA_INT_UPPER_TH2)     ||\
85                                       ((__INTSTSR__) == ANA_INT_LOWER_TH2)     ||\
86                                       ((__INTSTSR__) == ANA_INT_UPPER_TH1)     ||\
87                                       ((__INTSTSR__) == ANA_INT_LOWER_TH1)     ||\
88                                       ((__INTSTSR__) == ANA_INT_UPPER_TH0)     ||\
89                                       ((__INTSTSR__) == ANA_INT_LOWER_TH0)     ||\
90                                       ((__INTSTSR__) == ANA_INT_TADC_OVER)     ||\
91                                       ((__INTSTSR__) == ANA_INT_REGERR)        ||\
92                                       ((__INTSTSR__) == ANA_INT_SLPFAIL_VDCIN) ||\
93                                       ((__INTSTSR__) == ANA_INT_AVCCLV)        ||\
94                                       ((__INTSTSR__) == ANA_INT_VDCINDROP)     ||\
95                                       ((__INTSTSR__) == ANA_INT_VDDALARM)      ||\
96                                       ((__INTSTSR__) == ANA_INT_COMP2)         ||\
97                                       ((__INTSTSR__) == ANA_INT_COMP1)         ||\
98                                       ((__INTSTSR__) == ANA_INT_ADCA)          ||\
99                                       ((__INTSTSR__) == ANA_INT_ADCM))
100 
101 #define IS_ANA_INTSTSC(__INTSTSC__)  ((((__INTSTSC__) & ANA_INT_Msk) != 0U) &&\
102                                       (((__INTSTSC__) & ~ANA_INT_Msk) == 0U))
103 
104 #define IS_ANA_INT(__INT__)  IS_ANA_INTSTSC(__INT__)
105 
106 /* Exported Functions ------------------------------------------------------- */
107 uint8_t ANA_GetStatus(uint32_t StatusMask);
108 uint8_t ANA_GetINTStatus(uint32_t IntMask);
109 void ANA_ClearINTStatus(uint32_t IntMask);
110 void ANA_INTConfig(uint32_t IntMask, uint32_t NewState);
111 
112 #ifdef __cplusplus
113 }
114 #endif
115 
116 #endif  /* __LIB_ANA_H */
117 
118 /*********************************** END OF FILE ******************************/
119