1 /** 2 ****************************************************************************** 3 * @file lib_ana.c 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 15 /* Includes ------------------------------------------------------------------*/ 16 #include "lib_ana.h" 17 18 /** 19 * @brief Gets analog status. 20 * @param StatusMask: 21 ANA_STATUS_AVCCLV 22 ANA_STATUS_VDCINDROP 23 ANA_STATUS_VDDALARM 24 ANA_STATUS_COMP2 25 ANA_STATUS_COMP1 26 ANA_STATUS_LOCKL 27 ANA_STATUS_LOCKH 28 * @retval Analog status 29 */ ANA_GetStatus(uint32_t StatusMask)30uint8_t ANA_GetStatus(uint32_t StatusMask) 31 { 32 /* Check parameters */ 33 assert_parameters(IS_ANA_STATUS(StatusMask)); 34 35 if (ANA->CMPOUT & StatusMask) 36 { 37 return 1; 38 } 39 else 40 { 41 return 0; 42 } 43 } 44 45 /** 46 * @brief Gets analog interrupt status. 47 * @param IntMask: 48 ANA_INT_UPPER_TH3 49 ANA_INT_LOWER_TH3 50 ANA_INT_UPPER_TH2 51 ANA_INT_LOWER_TH2 52 ANA_INT_UPPER_TH1 53 ANA_INT_LOWER_TH1 54 ANA_INT_UPPER_TH0 55 ANA_INT_LOWER_TH0 56 ANA_INT_TADC_OVER 57 ANA_INT_REGERR 58 ANA_INT_SLPFAIL_VDCIN 59 ANA_INT_AVCCLV 60 ANA_INT_VDCINDROP 61 ANA_INT_VDDALARM 62 ANA_INT_COMP2 63 ANA_INT_COMP1 64 ANA_INT_ADCA 65 ANA_INT_ADCM 66 * @retval interrupt status. 67 */ ANA_GetINTStatus(uint32_t IntMask)68uint8_t ANA_GetINTStatus(uint32_t IntMask) 69 { 70 /* Check parameters */ 71 assert_parameters(IS_ANA_INTSTSR(IntMask)); 72 73 if (ANA->INTSTS&IntMask) 74 { 75 return 1; 76 } 77 else 78 { 79 return 0; 80 } 81 } 82 83 /** 84 * @brief Clears analog interrupt status. 85 * @param IntMask:status to clear, can use the '|' operator. 86 ANA_INT_UPPER_TH3 87 ANA_INT_LOWER_TH3 88 ANA_INT_UPPER_TH2 89 ANA_INT_LOWER_TH2 90 ANA_INT_UPPER_TH1 91 ANA_INT_LOWER_TH1 92 ANA_INT_UPPER_TH0 93 ANA_INT_LOWER_TH0 94 ANA_INT_TADC_OVER 95 ANA_INT_REGERR 96 ANA_INT_SLPFAIL_VDCIN 97 ANA_INT_AVCCLV 98 ANA_INT_VDCINDROP 99 ANA_INT_VDDALARM 100 ANA_INT_COMP2 101 ANA_INT_COMP1 102 ANA_INT_ADCA 103 ANA_INT_ADCM 104 * @retval None 105 */ ANA_ClearINTStatus(uint32_t IntMask)106void ANA_ClearINTStatus(uint32_t IntMask) 107 { 108 /* Check parameters */ 109 assert_parameters(IS_ANA_INTSTSC(IntMask)); 110 111 ANA->INTSTS = IntMask; 112 } 113 114 /** 115 * @brief Enables or disables analog interrupt. 116 * @param IntMask:status to clear, can use the '|' operator. 117 ANA_INT_UPPER_TH3 118 ANA_INT_LOWER_TH3 119 ANA_INT_UPPER_TH2 120 ANA_INT_LOWER_TH2 121 ANA_INT_UPPER_TH1 122 ANA_INT_LOWER_TH1 123 ANA_INT_UPPER_TH0 124 ANA_INT_LOWER_TH0 125 ANA_INT_TADC_OVER 126 ANA_INT_REGERR 127 ANA_INT_SLPFAIL_VDCIN 128 ANA_INT_AVCCLV 129 ANA_INT_VDCINDROP 130 ANA_INT_VDDALARM 131 ANA_INT_COMP2 132 ANA_INT_COMP1 133 ANA_INT_ADCA 134 ANA_INT_ADCM 135 NewState: 136 ENABLE 137 DISABLE 138 * @retval None 139 */ ANA_INTConfig(uint32_t IntMask,uint32_t NewState)140void ANA_INTConfig(uint32_t IntMask, uint32_t NewState) 141 { 142 uint32_t tmp; 143 144 /* Check parameters */ 145 assert_parameters(IS_ANA_INT(IntMask)); 146 assert_parameters(IS_FUNCTIONAL_STATE(NewState)); 147 148 tmp = ANA->INTEN; 149 if (NewState == ENABLE) 150 { 151 tmp |= IntMask; 152 } 153 else 154 { 155 tmp &= ~IntMask; 156 } 157 ANA->INTEN = tmp; 158 } 159 160 /*********************************** END OF FILE ******************************/ 161