1 /**
2   ******************************************************************************
3   * @file    lib_ana.h
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 #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_COMPOUT_AVCCLV
25 #define ANA_STATUS_VDCINDROP    ANA_COMPOUT_VDCINDROP
26 #define ANA_STATUS_VDDALARM     ANA_COMPOUT_VDDALARM
27 #define ANA_STATUS_COMP2        ANA_COMPOUT_COMP2
28 #define ANA_STATUS_COMP1        ANA_COMPOUT_COMP1
29 #define ANA_STATUS_LOCKL        ANA_COMPOUT_LOCKL
30 #define ANA_STATUS_LOCKH        ANA_COMPOUT_LOCKH
31 
32 /***** IntMask (ANA_GetINTStatus / ANA_ClearINTStatus / ANA_INTConfig) *****/
33 #define ANA_INT_TADC_OVER       ANA_INTSTS_INTSTS13
34 #define ANA_INT_REGERR          ANA_INTSTS_INTSTS12
35 #define ANA_INT_SME             ANA_INTSTS_INTSTS11
36 #define ANA_INT_AVCCLV          ANA_INTSTS_INTSTS10
37 #define ANA_INT_VDCINDROP       ANA_INTSTS_INTSTS8
38 #define ANA_INT_VDDALARM        ANA_INTSTS_INTSTS7
39 #define ANA_INT_COMP2           ANA_INTSTS_INTSTS3
40 #define ANA_INT_COMP1           ANA_INTSTS_INTSTS2
41 #define ANA_INT_ADCA            ANA_INTSTS_INTSTS1
42 #define ANA_INT_ADCM            ANA_INTSTS_INTSTS0
43 #define ANA_INT_Msk            (0x3DEFUL)
44 
45 /* Private macros ------------------------------------------------------------*/
46 #define IS_ANA_STATUS(__STATUS__)  (((__STATUS__) == ANA_STATUS_AVCCLV)    ||\
47                                     ((__STATUS__) == ANA_STATUS_VDCINDROP) ||\
48                                     ((__STATUS__) == ANA_STATUS_VDDALARM)  ||\
49                                     ((__STATUS__) == ANA_STATUS_COMP2)     ||\
50                                     ((__STATUS__) == ANA_STATUS_COMP1)     ||\
51                                     ((__STATUS__) == ANA_STATUS_LOCKL)     ||\
52                                     ((__STATUS__) == ANA_STATUS_LOCKH))
53 
54 #define IS_ANA_INTSTSR(__INTSTSR__)  (((__INTSTSR__) == ANA_INT_TADC_OVER) ||\
55                                       ((__INTSTSR__) == ANA_INT_REGERR)    ||\
56                                       ((__INTSTSR__) == ANA_INT_SME)       ||\
57                                       ((__INTSTSR__) == ANA_INT_AVCCLV)    ||\
58                                       ((__INTSTSR__) == ANA_INT_VDCINDROP) ||\
59                                       ((__INTSTSR__) == ANA_INT_VDDALARM)  ||\
60                                       ((__INTSTSR__) == ANA_INT_COMP2)     ||\
61                                       ((__INTSTSR__) == ANA_INT_COMP1)     ||\
62                                       ((__INTSTSR__) == ANA_INT_ADCA)      ||\
63                                       ((__INTSTSR__) == ANA_INT_ADCM))
64 
65 #define IS_ANA_INTSTSC(__INTSTSC__)  ((((__INTSTSC__) & ANA_INT_Msk) != 0U) &&\
66                                       (((__INTSTSC__) & ~ANA_INT_Msk) == 0U))
67 
68 #define IS_ANA_INT(__INT__)  IS_ANA_INTSTSC(__INT__)
69 
70 /* Exported Functions ------------------------------------------------------- */
71 uint8_t ANA_GetStatus(uint32_t StatusMask);
72 uint8_t ANA_GetINTStatus(uint32_t IntMask);
73 void ANA_ClearINTStatus(uint32_t IntMask);
74 void ANA_INTConfig(uint32_t IntMask, uint32_t NewState);
75 
76 #ifdef __cplusplus
77 }
78 #endif
79 
80 #endif  /* __LIB_ANA_H */
81 
82 /*********************************** END OF FILE ******************************/
83