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)31uint8_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)61uint8_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)91void 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)116void 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