The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
mbed 2
This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.
TARGET_NUMAKER_PFM_M453/TOOLCHAIN_ARM_MICRO/m451_acmp.h@171:3a7713b1edbc, 2018-11-08 (annotated)
- Committer:
- AnnaBridge
- Date:
- Thu Nov 08 11:45:42 2018 +0000
- Revision:
- 171:3a7713b1edbc
mbed library. Release version 164
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AnnaBridge | 171:3a7713b1edbc | 1 | /**************************************************************************//** |
AnnaBridge | 171:3a7713b1edbc | 2 | * @file ACMP.h |
AnnaBridge | 171:3a7713b1edbc | 3 | * @version V0.10 |
AnnaBridge | 171:3a7713b1edbc | 4 | * $Revision: 10 $ |
AnnaBridge | 171:3a7713b1edbc | 5 | * $Date: 15/08/11 10:26a $ |
AnnaBridge | 171:3a7713b1edbc | 6 | * @brief M451 Series ACMP Driver Header File |
AnnaBridge | 171:3a7713b1edbc | 7 | * |
AnnaBridge | 171:3a7713b1edbc | 8 | * @note |
AnnaBridge | 171:3a7713b1edbc | 9 | * Copyright (C) 2014~2015 Nuvoton Technology Corp. All rights reserved. |
AnnaBridge | 171:3a7713b1edbc | 10 | * |
AnnaBridge | 171:3a7713b1edbc | 11 | ******************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 12 | #ifndef __ACMP_H__ |
AnnaBridge | 171:3a7713b1edbc | 13 | #define __ACMP_H__ |
AnnaBridge | 171:3a7713b1edbc | 14 | |
AnnaBridge | 171:3a7713b1edbc | 15 | /*---------------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 16 | /* Include related headers */ |
AnnaBridge | 171:3a7713b1edbc | 17 | /*---------------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 18 | #include "M451Series.h" |
AnnaBridge | 171:3a7713b1edbc | 19 | |
AnnaBridge | 171:3a7713b1edbc | 20 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 21 | extern "C" |
AnnaBridge | 171:3a7713b1edbc | 22 | { |
AnnaBridge | 171:3a7713b1edbc | 23 | #endif |
AnnaBridge | 171:3a7713b1edbc | 24 | |
AnnaBridge | 171:3a7713b1edbc | 25 | |
AnnaBridge | 171:3a7713b1edbc | 26 | /** @addtogroup Standard_Driver Standard Driver |
AnnaBridge | 171:3a7713b1edbc | 27 | @{ |
AnnaBridge | 171:3a7713b1edbc | 28 | */ |
AnnaBridge | 171:3a7713b1edbc | 29 | |
AnnaBridge | 171:3a7713b1edbc | 30 | /** @addtogroup ACMP_Driver ACMP Driver |
AnnaBridge | 171:3a7713b1edbc | 31 | @{ |
AnnaBridge | 171:3a7713b1edbc | 32 | */ |
AnnaBridge | 171:3a7713b1edbc | 33 | |
AnnaBridge | 171:3a7713b1edbc | 34 | |
AnnaBridge | 171:3a7713b1edbc | 35 | /** @addtogroup ACMP_EXPORTED_CONSTANTS ACMP Exported Constants |
AnnaBridge | 171:3a7713b1edbc | 36 | @{ |
AnnaBridge | 171:3a7713b1edbc | 37 | */ |
AnnaBridge | 171:3a7713b1edbc | 38 | |
AnnaBridge | 171:3a7713b1edbc | 39 | |
AnnaBridge | 171:3a7713b1edbc | 40 | |
AnnaBridge | 171:3a7713b1edbc | 41 | /*---------------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 42 | /* ACMP_CTL constant definitions */ |
AnnaBridge | 171:3a7713b1edbc | 43 | /*---------------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 44 | #define ACMP_CTL_FILTSEL_OFF (0UL << 13) /*!< ACMP_CTL setting for filter function disabled. */ |
AnnaBridge | 171:3a7713b1edbc | 45 | #define ACMP_CTL_FILTSEL_1PCLK (1UL << 13) /*!< ACMP_CTL setting for 1 PCLK filter count. */ |
AnnaBridge | 171:3a7713b1edbc | 46 | #define ACMP_CTL_FILTSEL_2PCLK (2UL << 13) /*!< ACMP_CTL setting for 2 PCLK filter count. */ |
AnnaBridge | 171:3a7713b1edbc | 47 | #define ACMP_CTL_FILTSEL_4PCLK (3UL << 13) /*!< ACMP_CTL setting for 4 PCLK filter count. */ |
AnnaBridge | 171:3a7713b1edbc | 48 | #define ACMP_CTL_FILTSEL_8PCLK (4UL << 13) /*!< ACMP_CTL setting for 8 PCLK filter count. */ |
AnnaBridge | 171:3a7713b1edbc | 49 | #define ACMP_CTL_FILTSEL_16PCLK (5UL << 13) /*!< ACMP_CTL setting for 16 PCLK filter count. */ |
AnnaBridge | 171:3a7713b1edbc | 50 | #define ACMP_CTL_FILTSEL_32PCLK (6UL << 13) /*!< ACMP_CTL setting for 32 PCLK filter count. */ |
AnnaBridge | 171:3a7713b1edbc | 51 | #define ACMP_CTL_FILTSEL_64PCLK (7UL << 13) /*!< ACMP_CTL setting for 64 PCLK filter count. */ |
AnnaBridge | 171:3a7713b1edbc | 52 | #define ACMP_CTL_INTPOL_RF (0UL << 8) /*!< ACMP_CTL setting for selecting rising edge and falling edge as interrupt condition. */ |
AnnaBridge | 171:3a7713b1edbc | 53 | #define ACMP_CTL_INTPOL_R (1UL << 8) /*!< ACMP_CTL setting for selecting rising edge as interrupt condition. */ |
AnnaBridge | 171:3a7713b1edbc | 54 | #define ACMP_CTL_INTPOL_F (2UL << 8) /*!< ACMP_CTL setting for selecting falling edge as interrupt condition. */ |
AnnaBridge | 171:3a7713b1edbc | 55 | #define ACMP_CTL_POSSEL_P0 (0UL << 6) /*!< ACMP_CTL setting for selecting ACMPx_P0 pin as the source of ACMP V+. */ |
AnnaBridge | 171:3a7713b1edbc | 56 | #define ACMP_CTL_POSSEL_P1 (1UL << 6) /*!< ACMP_CTL setting for selecting ACMPx_P1 pin as the source of ACMP V+. */ |
AnnaBridge | 171:3a7713b1edbc | 57 | #define ACMP_CTL_POSSEL_P2 (2UL << 6) /*!< ACMP_CTL setting for selecting ACMPx_P2 pin as the source of ACMP V+. */ |
AnnaBridge | 171:3a7713b1edbc | 58 | #define ACMP_CTL_POSSEL_P3 (3UL << 6) /*!< ACMP_CTL setting for selecting ACMPx_P3 pin as the source of ACMP V+. */ |
AnnaBridge | 171:3a7713b1edbc | 59 | #define ACMP_CTL_NEGSEL_PIN (0UL << 4) /*!< ACMP_CTL setting for selecting the voltage of ACMP negative input pin as the source of ACMP V-. */ |
AnnaBridge | 171:3a7713b1edbc | 60 | #define ACMP_CTL_NEGSEL_CRV (1UL << 4) /*!< ACMP_CTL setting for selecting internal comparator reference voltage as the source of ACMP V-. */ |
AnnaBridge | 171:3a7713b1edbc | 61 | #define ACMP_CTL_NEGSEL_VBG (2UL << 4) /*!< ACMP_CTL setting for selecting internal Band-gap voltage as the source of ACMP V-. */ |
AnnaBridge | 171:3a7713b1edbc | 62 | #define ACMP_CTL_NEGSEL_DAC (3UL << 4) /*!< ACMP_CTL setting for selecting DAC output voltage as the source of ACMP V-. */ |
AnnaBridge | 171:3a7713b1edbc | 63 | #define ACMP_CTL_HYSTERESIS_ENABLE (1UL << 2) /*!< ACMP_CTL setting for enabling the hysteresis function. */ |
AnnaBridge | 171:3a7713b1edbc | 64 | #define ACMP_CTL_HYSTERESIS_DISABLE (0UL << 2) /*!< ACMP_CTL setting for disabling the hysteresis function. */ |
AnnaBridge | 171:3a7713b1edbc | 65 | |
AnnaBridge | 171:3a7713b1edbc | 66 | /*---------------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 67 | /* ACMP_VREF constant definitions */ |
AnnaBridge | 171:3a7713b1edbc | 68 | /*---------------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 69 | #define ACMP_VREF_CRVSSEL_VDDA (0UL << 6) /*!< ACMP_VREF setting for selecting analog supply voltage VDDA as the CRV source voltage */ |
AnnaBridge | 171:3a7713b1edbc | 70 | #define ACMP_VREF_CRVSSEL_INTVREF (1UL << 6) /*!< ACMP_VREF setting for selecting internal reference voltage as the CRV source voltage */ |
AnnaBridge | 171:3a7713b1edbc | 71 | |
AnnaBridge | 171:3a7713b1edbc | 72 | |
AnnaBridge | 171:3a7713b1edbc | 73 | /*@}*/ /* end of group ACMP_EXPORTED_CONSTANTS */ |
AnnaBridge | 171:3a7713b1edbc | 74 | |
AnnaBridge | 171:3a7713b1edbc | 75 | |
AnnaBridge | 171:3a7713b1edbc | 76 | /** @addtogroup ACMP_EXPORTED_FUNCTIONS ACMP Exported Functions |
AnnaBridge | 171:3a7713b1edbc | 77 | @{ |
AnnaBridge | 171:3a7713b1edbc | 78 | */ |
AnnaBridge | 171:3a7713b1edbc | 79 | |
AnnaBridge | 171:3a7713b1edbc | 80 | /*---------------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 81 | /* Define Macros and functions */ |
AnnaBridge | 171:3a7713b1edbc | 82 | /*---------------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 83 | |
AnnaBridge | 171:3a7713b1edbc | 84 | |
AnnaBridge | 171:3a7713b1edbc | 85 | /** |
AnnaBridge | 171:3a7713b1edbc | 86 | * @brief This macro is used to enable output inverse function |
AnnaBridge | 171:3a7713b1edbc | 87 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 88 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 89 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 90 | * @details This macro will set ACMPOINV bit of ACMP_CTL register to enable output inverse function. |
AnnaBridge | 171:3a7713b1edbc | 91 | */ |
AnnaBridge | 171:3a7713b1edbc | 92 | #define ACMP_ENABLE_OUTPUT_INVERSE(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] |= ACMP_CTL_ACMPOINV_Msk) |
AnnaBridge | 171:3a7713b1edbc | 93 | |
AnnaBridge | 171:3a7713b1edbc | 94 | /** |
AnnaBridge | 171:3a7713b1edbc | 95 | * @brief This macro is used to disable output inverse function |
AnnaBridge | 171:3a7713b1edbc | 96 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 97 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 98 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 99 | * @details This macro will clear ACMPOINV bit of ACMP_CTL register to disable output inverse function. |
AnnaBridge | 171:3a7713b1edbc | 100 | */ |
AnnaBridge | 171:3a7713b1edbc | 101 | #define ACMP_DISABLE_OUTPUT_INVERSE(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] &= ~ACMP_CTL_ACMPOINV_Msk) |
AnnaBridge | 171:3a7713b1edbc | 102 | |
AnnaBridge | 171:3a7713b1edbc | 103 | /** |
AnnaBridge | 171:3a7713b1edbc | 104 | * @brief This macro is used to select ACMP negative input source |
AnnaBridge | 171:3a7713b1edbc | 105 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 106 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 107 | * @param[in] u32Src is comparator negative input selection. Including: |
AnnaBridge | 171:3a7713b1edbc | 108 | * - \ref ACMP_CTL_NEGSEL_PIN |
AnnaBridge | 171:3a7713b1edbc | 109 | * - \ref ACMP_CTL_NEGSEL_CRV |
AnnaBridge | 171:3a7713b1edbc | 110 | * - \ref ACMP_CTL_NEGSEL_VBG |
AnnaBridge | 171:3a7713b1edbc | 111 | * - \ref ACMP_CTL_NEGSEL_DAC |
AnnaBridge | 171:3a7713b1edbc | 112 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 113 | * @details This macro will set NEGSEL (ACMP_CTL[5:4]) to determine the source of negative input. |
AnnaBridge | 171:3a7713b1edbc | 114 | */ |
AnnaBridge | 171:3a7713b1edbc | 115 | #define ACMP_SET_NEG_SRC(acmp, u32ChNum, u32Src) ((acmp)->CTL[(u32ChNum)%2] = ((acmp)->CTL[(u32ChNum)%2] & ~ACMP_CTL_NEGSEL_Msk) | (u32Src)) |
AnnaBridge | 171:3a7713b1edbc | 116 | |
AnnaBridge | 171:3a7713b1edbc | 117 | /** |
AnnaBridge | 171:3a7713b1edbc | 118 | * @brief This macro is used to enable hysteresis function |
AnnaBridge | 171:3a7713b1edbc | 119 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 120 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 121 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 122 | * @details This macro will set HYSEN bit of ACMP_CTL register to enable hysteresis function. |
AnnaBridge | 171:3a7713b1edbc | 123 | */ |
AnnaBridge | 171:3a7713b1edbc | 124 | #define ACMP_ENABLE_HYSTERESIS(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] |= ACMP_CTL_HYSEN_Msk) |
AnnaBridge | 171:3a7713b1edbc | 125 | |
AnnaBridge | 171:3a7713b1edbc | 126 | /** |
AnnaBridge | 171:3a7713b1edbc | 127 | * @brief This macro is used to disable hysteresis function |
AnnaBridge | 171:3a7713b1edbc | 128 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 129 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 130 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 131 | * @details This macro will clear HYSEN bit of ACMP_CTL register to disable hysteresis function. |
AnnaBridge | 171:3a7713b1edbc | 132 | */ |
AnnaBridge | 171:3a7713b1edbc | 133 | #define ACMP_DISABLE_HYSTERESIS(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] &= ~ACMP_CTL_HYSEN_Msk) |
AnnaBridge | 171:3a7713b1edbc | 134 | |
AnnaBridge | 171:3a7713b1edbc | 135 | /** |
AnnaBridge | 171:3a7713b1edbc | 136 | * @brief This macro is used to enable interrupt |
AnnaBridge | 171:3a7713b1edbc | 137 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 138 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 139 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 140 | * @details This macro will set ACMPIE bit of ACMP_CTL register to enable interrupt function. |
AnnaBridge | 171:3a7713b1edbc | 141 | * If wake-up function is enabled, the wake-up interrupt will be enabled as well. |
AnnaBridge | 171:3a7713b1edbc | 142 | */ |
AnnaBridge | 171:3a7713b1edbc | 143 | #define ACMP_ENABLE_INT(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] |= ACMP_CTL_ACMPIE_Msk) |
AnnaBridge | 171:3a7713b1edbc | 144 | |
AnnaBridge | 171:3a7713b1edbc | 145 | /** |
AnnaBridge | 171:3a7713b1edbc | 146 | * @brief This macro is used to disable interrupt |
AnnaBridge | 171:3a7713b1edbc | 147 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 148 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 149 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 150 | * @details This macro will clear ACMPIE bit of ACMP_CTL register to disable interrupt function. |
AnnaBridge | 171:3a7713b1edbc | 151 | */ |
AnnaBridge | 171:3a7713b1edbc | 152 | #define ACMP_DISABLE_INT(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] &= ~ACMP_CTL_ACMPIE_Msk) |
AnnaBridge | 171:3a7713b1edbc | 153 | |
AnnaBridge | 171:3a7713b1edbc | 154 | /** |
AnnaBridge | 171:3a7713b1edbc | 155 | * @brief This macro is used to enable ACMP |
AnnaBridge | 171:3a7713b1edbc | 156 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 157 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 158 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 159 | * @details This macro will set ACMPEN bit of ACMP_CTL register to enable analog comparator. |
AnnaBridge | 171:3a7713b1edbc | 160 | */ |
AnnaBridge | 171:3a7713b1edbc | 161 | #define ACMP_ENABLE(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] |= ACMP_CTL_ACMPEN_Msk) |
AnnaBridge | 171:3a7713b1edbc | 162 | |
AnnaBridge | 171:3a7713b1edbc | 163 | /** |
AnnaBridge | 171:3a7713b1edbc | 164 | * @brief This macro is used to disable ACMP |
AnnaBridge | 171:3a7713b1edbc | 165 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 166 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 167 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 168 | * @details This macro will clear ACMPEN bit of ACMP_CTL register to disable analog comparator. |
AnnaBridge | 171:3a7713b1edbc | 169 | */ |
AnnaBridge | 171:3a7713b1edbc | 170 | #define ACMP_DISABLE(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] &= ~ACMP_CTL_ACMPEN_Msk) |
AnnaBridge | 171:3a7713b1edbc | 171 | |
AnnaBridge | 171:3a7713b1edbc | 172 | /** |
AnnaBridge | 171:3a7713b1edbc | 173 | * @brief This macro is used to get ACMP output value |
AnnaBridge | 171:3a7713b1edbc | 174 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 175 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 176 | * @return ACMP output value |
AnnaBridge | 171:3a7713b1edbc | 177 | * @details This macro will return the ACMP output value. |
AnnaBridge | 171:3a7713b1edbc | 178 | */ |
AnnaBridge | 171:3a7713b1edbc | 179 | #define ACMP_GET_OUTPUT(acmp, u32ChNum) (((acmp)->STATUS & (ACMP_STATUS_ACMPO0_Msk<<((u32ChNum)%2)))?1:0) |
AnnaBridge | 171:3a7713b1edbc | 180 | |
AnnaBridge | 171:3a7713b1edbc | 181 | /** |
AnnaBridge | 171:3a7713b1edbc | 182 | * @brief This macro is used to get ACMP interrupt flag |
AnnaBridge | 171:3a7713b1edbc | 183 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 184 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 185 | * @return ACMP interrupt occurred (1) or not (0) |
AnnaBridge | 171:3a7713b1edbc | 186 | * @details This macro will return the ACMP interrupt flag. |
AnnaBridge | 171:3a7713b1edbc | 187 | */ |
AnnaBridge | 171:3a7713b1edbc | 188 | #define ACMP_GET_INT_FLAG(acmp, u32ChNum) (((acmp)->STATUS & (ACMP_STATUS_ACMPIF0_Msk<<((u32ChNum)%2)))?1:0) |
AnnaBridge | 171:3a7713b1edbc | 189 | |
AnnaBridge | 171:3a7713b1edbc | 190 | /** |
AnnaBridge | 171:3a7713b1edbc | 191 | * @brief This macro is used to clear ACMP interrupt flag |
AnnaBridge | 171:3a7713b1edbc | 192 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 193 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 194 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 195 | * @details This macro will write 1 to ACMPIFn bit of ACMP_STATUS register to clear interrupt flag. |
AnnaBridge | 171:3a7713b1edbc | 196 | */ |
AnnaBridge | 171:3a7713b1edbc | 197 | #define ACMP_CLR_INT_FLAG(acmp, u32ChNum) ((acmp)->STATUS = (ACMP_STATUS_ACMPIF0_Msk<<((u32ChNum)%2))) |
AnnaBridge | 171:3a7713b1edbc | 198 | |
AnnaBridge | 171:3a7713b1edbc | 199 | /** |
AnnaBridge | 171:3a7713b1edbc | 200 | * @brief This macro is used to clear ACMP wake-up interrupt flag |
AnnaBridge | 171:3a7713b1edbc | 201 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 202 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 203 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 204 | * @details This macro will write 1 to WKIFn bit of ACMP_STATUS register to clear interrupt flag. |
AnnaBridge | 171:3a7713b1edbc | 205 | */ |
AnnaBridge | 171:3a7713b1edbc | 206 | #define ACMP_CLR_WAKEUP_INT_FLAG(acmp, u32ChNum) ((acmp)->STATUS = (ACMP_STATUS_WKIF0_Msk<<((u32ChNum)%2))) |
AnnaBridge | 171:3a7713b1edbc | 207 | |
AnnaBridge | 171:3a7713b1edbc | 208 | /** |
AnnaBridge | 171:3a7713b1edbc | 209 | * @brief This macro is used to enable ACMP wake-up function |
AnnaBridge | 171:3a7713b1edbc | 210 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 211 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 212 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 213 | * @details This macro will set WKEN (ACMP_CTL[16]) to enable ACMP wake-up function. |
AnnaBridge | 171:3a7713b1edbc | 214 | */ |
AnnaBridge | 171:3a7713b1edbc | 215 | #define ACMP_ENABLE_WAKEUP(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] |= ACMP_CTL_WKEN_Msk) |
AnnaBridge | 171:3a7713b1edbc | 216 | |
AnnaBridge | 171:3a7713b1edbc | 217 | /** |
AnnaBridge | 171:3a7713b1edbc | 218 | * @brief This macro is used to disable ACMP wake-up function |
AnnaBridge | 171:3a7713b1edbc | 219 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 220 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 221 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 222 | * @details This macro will clear WKEN (ACMP_CTL[16]) to disable ACMP wake-up function. |
AnnaBridge | 171:3a7713b1edbc | 223 | */ |
AnnaBridge | 171:3a7713b1edbc | 224 | #define ACMP_DISABLE_WAKEUP(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] &= ~ACMP_CTL_WKEN_Msk) |
AnnaBridge | 171:3a7713b1edbc | 225 | |
AnnaBridge | 171:3a7713b1edbc | 226 | /** |
AnnaBridge | 171:3a7713b1edbc | 227 | * @brief This macro is used to select ACMP positive input pin |
AnnaBridge | 171:3a7713b1edbc | 228 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 229 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 230 | * @param[in] u32Pin Comparator positive pin selection. Including: |
AnnaBridge | 171:3a7713b1edbc | 231 | * - \ref ACMP_CTL_POSSEL_P0 |
AnnaBridge | 171:3a7713b1edbc | 232 | * - \ref ACMP_CTL_POSSEL_P1 |
AnnaBridge | 171:3a7713b1edbc | 233 | * - \ref ACMP_CTL_POSSEL_P2 |
AnnaBridge | 171:3a7713b1edbc | 234 | * - \ref ACMP_CTL_POSSEL_P3 |
AnnaBridge | 171:3a7713b1edbc | 235 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 236 | * @details This macro will set POSSEL (ACMP_CTL[7:6]) to determine the comparator positive input pin. |
AnnaBridge | 171:3a7713b1edbc | 237 | */ |
AnnaBridge | 171:3a7713b1edbc | 238 | #define ACMP_SELECT_P(acmp, u32ChNum, u32Pin) ((acmp)->CTL[(u32ChNum)%2] = ((acmp)->CTL[(u32ChNum)%2] & ~ACMP_CTL_POSSEL_Msk) | (u32Pin)) |
AnnaBridge | 171:3a7713b1edbc | 239 | |
AnnaBridge | 171:3a7713b1edbc | 240 | /** |
AnnaBridge | 171:3a7713b1edbc | 241 | * @brief This macro is used to enable ACMP filter function |
AnnaBridge | 171:3a7713b1edbc | 242 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 243 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 244 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 245 | * @details This macro will set OUTSEL (ACMP_CTL[12]) to enable output filter function. |
AnnaBridge | 171:3a7713b1edbc | 246 | */ |
AnnaBridge | 171:3a7713b1edbc | 247 | #define ACMP_ENABLE_FILTER(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] |= ACMP_CTL_OUTSEL_Msk) |
AnnaBridge | 171:3a7713b1edbc | 248 | |
AnnaBridge | 171:3a7713b1edbc | 249 | /** |
AnnaBridge | 171:3a7713b1edbc | 250 | * @brief This macro is used to disable ACMP filter function |
AnnaBridge | 171:3a7713b1edbc | 251 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 252 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 253 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 254 | * @details This macro will clear OUTSEL (ACMP_CTL[12]) to disable output filter function. |
AnnaBridge | 171:3a7713b1edbc | 255 | */ |
AnnaBridge | 171:3a7713b1edbc | 256 | #define ACMP_DISABLE_FILTER(acmp, u32ChNum) ((acmp)->CTL[(u32ChNum)%2] &= ~ACMP_CTL_OUTSEL_Msk) |
AnnaBridge | 171:3a7713b1edbc | 257 | |
AnnaBridge | 171:3a7713b1edbc | 258 | /** |
AnnaBridge | 171:3a7713b1edbc | 259 | * @brief This macro is used to set ACMP filter function |
AnnaBridge | 171:3a7713b1edbc | 260 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 261 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 262 | * @param[in] u32Cnt is comparator filter count setting. |
AnnaBridge | 171:3a7713b1edbc | 263 | * - \ref ACMP_CTL_FILTSEL_OFF |
AnnaBridge | 171:3a7713b1edbc | 264 | * - \ref ACMP_CTL_FILTSEL_1PCLK |
AnnaBridge | 171:3a7713b1edbc | 265 | * - \ref ACMP_CTL_FILTSEL_2PCLK |
AnnaBridge | 171:3a7713b1edbc | 266 | * - \ref ACMP_CTL_FILTSEL_4PCLK |
AnnaBridge | 171:3a7713b1edbc | 267 | * - \ref ACMP_CTL_FILTSEL_8PCLK |
AnnaBridge | 171:3a7713b1edbc | 268 | * - \ref ACMP_CTL_FILTSEL_16PCLK |
AnnaBridge | 171:3a7713b1edbc | 269 | * - \ref ACMP_CTL_FILTSEL_32PCLK |
AnnaBridge | 171:3a7713b1edbc | 270 | * - \ref ACMP_CTL_FILTSEL_64PCLK |
AnnaBridge | 171:3a7713b1edbc | 271 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 272 | * @details When ACMP output filter function is enabled, the output sampling count is determined by FILTSEL (ACMP_CTL[15:13]). |
AnnaBridge | 171:3a7713b1edbc | 273 | */ |
AnnaBridge | 171:3a7713b1edbc | 274 | #define ACMP_SET_FILTER(acmp, u32ChNum, u32Cnt) ((acmp)->CTL[(u32ChNum)%2] = ((acmp)->CTL[(u32ChNum)%2] & ~ACMP_CTL_FILTSEL_Msk) | (u32Cnt)) |
AnnaBridge | 171:3a7713b1edbc | 275 | |
AnnaBridge | 171:3a7713b1edbc | 276 | /** |
AnnaBridge | 171:3a7713b1edbc | 277 | * @brief This macro is used to select comparator reference voltage |
AnnaBridge | 171:3a7713b1edbc | 278 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 279 | * @param[in] u32Level The comparator reference voltage setting. |
AnnaBridge | 171:3a7713b1edbc | 280 | * The formula is: |
AnnaBridge | 171:3a7713b1edbc | 281 | * comparator reference voltage = CRV source voltage x (1/6 + u32Level/24) |
AnnaBridge | 171:3a7713b1edbc | 282 | * The range of u32Level is 0 ~ 15. |
AnnaBridge | 171:3a7713b1edbc | 283 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 284 | * @details When CRV is selected as ACMP negative input source, the CRV level is determined by CRVCTL (ACMP_VREF[3:0]). |
AnnaBridge | 171:3a7713b1edbc | 285 | */ |
AnnaBridge | 171:3a7713b1edbc | 286 | #define ACMP_CRV_SEL(acmp, u32Level) ((acmp)->VREF = ((acmp)->VREF & ~ACMP_VREF_CRVCTL_Msk) | ((u32Level)<<ACMP_VREF_CRVCTL_Pos)) |
AnnaBridge | 171:3a7713b1edbc | 287 | |
AnnaBridge | 171:3a7713b1edbc | 288 | /** |
AnnaBridge | 171:3a7713b1edbc | 289 | * @brief This macro is used to select the source of CRV |
AnnaBridge | 171:3a7713b1edbc | 290 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 291 | * @param[in] u32Src is the source of CRV. Including: |
AnnaBridge | 171:3a7713b1edbc | 292 | * - \ref ACMP_VREF_CRVSSEL_VDDA |
AnnaBridge | 171:3a7713b1edbc | 293 | * - \ref ACMP_VREF_CRVSSEL_INTVREF |
AnnaBridge | 171:3a7713b1edbc | 294 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 295 | * @details The source of CRV can be VDDA or internal reference voltage. The internal reference voltage level is determined by SYS_VREFCTL register. |
AnnaBridge | 171:3a7713b1edbc | 296 | */ |
AnnaBridge | 171:3a7713b1edbc | 297 | #define ACMP_SELECT_CRV_SRC(acmp, u32Src) ((acmp)->VREF = ((acmp)->VREF & ~ACMP_VREF_CRVSSEL_Msk) | (u32Src)) |
AnnaBridge | 171:3a7713b1edbc | 298 | |
AnnaBridge | 171:3a7713b1edbc | 299 | /** |
AnnaBridge | 171:3a7713b1edbc | 300 | * @brief This macro is used to select ACMP interrupt condition |
AnnaBridge | 171:3a7713b1edbc | 301 | * @param[in] acmp The pointer of the specified ACMP module |
AnnaBridge | 171:3a7713b1edbc | 302 | * @param[in] u32ChNum The ACMP number |
AnnaBridge | 171:3a7713b1edbc | 303 | * @param[in] u32Cond Comparator interrupt condition selection. Including: |
AnnaBridge | 171:3a7713b1edbc | 304 | * - \ref ACMP_CTL_INTPOL_RF |
AnnaBridge | 171:3a7713b1edbc | 305 | * - \ref ACMP_CTL_INTPOL_R |
AnnaBridge | 171:3a7713b1edbc | 306 | * - \ref ACMP_CTL_INTPOL_F |
AnnaBridge | 171:3a7713b1edbc | 307 | * @return None |
AnnaBridge | 171:3a7713b1edbc | 308 | * @details The ACMP output interrupt condition can be rising edge, falling edge or any edge. |
AnnaBridge | 171:3a7713b1edbc | 309 | */ |
AnnaBridge | 171:3a7713b1edbc | 310 | #define ACMP_SELECT_INT_COND(acmp, u32ChNum, u32Cond) ((acmp)->CTL[(u32ChNum)%2] = ((acmp)->CTL[(u32ChNum)%2] & ~ACMP_CTL_INTPOL_Msk) | (u32Cond)) |
AnnaBridge | 171:3a7713b1edbc | 311 | |
AnnaBridge | 171:3a7713b1edbc | 312 | |
AnnaBridge | 171:3a7713b1edbc | 313 | |
AnnaBridge | 171:3a7713b1edbc | 314 | /* Function prototype declaration */ |
AnnaBridge | 171:3a7713b1edbc | 315 | void ACMP_Open(ACMP_T *, uint32_t u32ChNum, uint32_t u32NegSrc, uint32_t u32HysteresisEn); |
AnnaBridge | 171:3a7713b1edbc | 316 | void ACMP_Close(ACMP_T *, uint32_t u32ChNum); |
AnnaBridge | 171:3a7713b1edbc | 317 | |
AnnaBridge | 171:3a7713b1edbc | 318 | |
AnnaBridge | 171:3a7713b1edbc | 319 | |
AnnaBridge | 171:3a7713b1edbc | 320 | /*@}*/ /* end of group ACMP_EXPORTED_FUNCTIONS */ |
AnnaBridge | 171:3a7713b1edbc | 321 | |
AnnaBridge | 171:3a7713b1edbc | 322 | /*@}*/ /* end of group ACMP_Driver */ |
AnnaBridge | 171:3a7713b1edbc | 323 | |
AnnaBridge | 171:3a7713b1edbc | 324 | /*@}*/ /* end of group Standard_Driver */ |
AnnaBridge | 171:3a7713b1edbc | 325 | |
AnnaBridge | 171:3a7713b1edbc | 326 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 327 | } |
AnnaBridge | 171:3a7713b1edbc | 328 | #endif |
AnnaBridge | 171:3a7713b1edbc | 329 | |
AnnaBridge | 171:3a7713b1edbc | 330 | |
AnnaBridge | 171:3a7713b1edbc | 331 | #endif //__ACMP_H__ |
AnnaBridge | 171:3a7713b1edbc | 332 | |
AnnaBridge | 171:3a7713b1edbc | 333 | /*** (C) COPYRIGHT 2014~2015 Nuvoton Technology Corp. ***/ |