mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 189:f392fc9709a3 1 /*
AnnaBridge 189:f392fc9709a3 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
AnnaBridge 189:f392fc9709a3 3 * All rights reserved.
AnnaBridge 189:f392fc9709a3 4 *
AnnaBridge 189:f392fc9709a3 5 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 189:f392fc9709a3 6 * are permitted provided that the following conditions are met:
AnnaBridge 189:f392fc9709a3 7 *
AnnaBridge 189:f392fc9709a3 8 * o Redistributions of source code must retain the above copyright notice, this list
AnnaBridge 189:f392fc9709a3 9 * of conditions and the following disclaimer.
AnnaBridge 189:f392fc9709a3 10 *
AnnaBridge 189:f392fc9709a3 11 * o Redistributions in binary form must reproduce the above copyright notice, this
AnnaBridge 189:f392fc9709a3 12 * list of conditions and the following disclaimer in the documentation and/or
AnnaBridge 189:f392fc9709a3 13 * other materials provided with the distribution.
AnnaBridge 189:f392fc9709a3 14 *
AnnaBridge 189:f392fc9709a3 15 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
AnnaBridge 189:f392fc9709a3 16 * contributors may be used to endorse or promote products derived from this
AnnaBridge 189:f392fc9709a3 17 * software without specific prior written permission.
AnnaBridge 189:f392fc9709a3 18 *
AnnaBridge 189:f392fc9709a3 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
AnnaBridge 189:f392fc9709a3 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
AnnaBridge 189:f392fc9709a3 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 189:f392fc9709a3 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
AnnaBridge 189:f392fc9709a3 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
AnnaBridge 189:f392fc9709a3 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
AnnaBridge 189:f392fc9709a3 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
AnnaBridge 189:f392fc9709a3 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
AnnaBridge 189:f392fc9709a3 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
AnnaBridge 189:f392fc9709a3 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 189:f392fc9709a3 29 */
AnnaBridge 189:f392fc9709a3 30
AnnaBridge 189:f392fc9709a3 31 #ifndef _FSL_CMP_H_
AnnaBridge 189:f392fc9709a3 32 #define _FSL_CMP_H_
AnnaBridge 189:f392fc9709a3 33
AnnaBridge 189:f392fc9709a3 34 #include "fsl_common.h"
AnnaBridge 189:f392fc9709a3 35
AnnaBridge 189:f392fc9709a3 36 /*!
AnnaBridge 189:f392fc9709a3 37 * @addtogroup cmp
AnnaBridge 189:f392fc9709a3 38 * @{
AnnaBridge 189:f392fc9709a3 39 */
AnnaBridge 189:f392fc9709a3 40
AnnaBridge 189:f392fc9709a3 41
AnnaBridge 189:f392fc9709a3 42 /*******************************************************************************
AnnaBridge 189:f392fc9709a3 43 * Definitions
AnnaBridge 189:f392fc9709a3 44 ******************************************************************************/
AnnaBridge 189:f392fc9709a3 45
AnnaBridge 189:f392fc9709a3 46 /*! @name Driver version */
AnnaBridge 189:f392fc9709a3 47 /*@{*/
AnnaBridge 189:f392fc9709a3 48 /*! @brief CMP driver version 2.0.0. */
AnnaBridge 189:f392fc9709a3 49 #define FSL_CMP_DRIVER_VERSION (MAKE_VERSION(2, 0, 0))
AnnaBridge 189:f392fc9709a3 50 /*@}*/
AnnaBridge 189:f392fc9709a3 51
AnnaBridge 189:f392fc9709a3 52 /*!
AnnaBridge 189:f392fc9709a3 53 * @brief Interrupt enable/disable mask.
AnnaBridge 189:f392fc9709a3 54 */
AnnaBridge 189:f392fc9709a3 55 enum _cmp_interrupt_enable
AnnaBridge 189:f392fc9709a3 56 {
AnnaBridge 189:f392fc9709a3 57 kCMP_OutputRisingInterruptEnable = CMP_SCR_IER_MASK, /*!< Comparator interrupt enable rising. */
AnnaBridge 189:f392fc9709a3 58 kCMP_OutputFallingInterruptEnable = CMP_SCR_IEF_MASK, /*!< Comparator interrupt enable falling. */
AnnaBridge 189:f392fc9709a3 59 };
AnnaBridge 189:f392fc9709a3 60
AnnaBridge 189:f392fc9709a3 61 /*!
AnnaBridge 189:f392fc9709a3 62 * @brief Status flags' mask.
AnnaBridge 189:f392fc9709a3 63 */
AnnaBridge 189:f392fc9709a3 64 enum _cmp_status_flags
AnnaBridge 189:f392fc9709a3 65 {
AnnaBridge 189:f392fc9709a3 66 kCMP_OutputRisingEventFlag = CMP_SCR_CFR_MASK, /*!< Rising-edge on the comparison output has occurred. */
AnnaBridge 189:f392fc9709a3 67 kCMP_OutputFallingEventFlag = CMP_SCR_CFF_MASK, /*!< Falling-edge on the comparison output has occurred. */
AnnaBridge 189:f392fc9709a3 68 kCMP_OutputAssertEventFlag = CMP_SCR_COUT_MASK, /*!< Return the current value of the analog comparator output. */
AnnaBridge 189:f392fc9709a3 69 };
AnnaBridge 189:f392fc9709a3 70
AnnaBridge 189:f392fc9709a3 71 /*!
AnnaBridge 189:f392fc9709a3 72 * @brief CMP Hysteresis mode.
AnnaBridge 189:f392fc9709a3 73 */
AnnaBridge 189:f392fc9709a3 74 typedef enum _cmp_hysteresis_mode
AnnaBridge 189:f392fc9709a3 75 {
AnnaBridge 189:f392fc9709a3 76 kCMP_HysteresisLevel0 = 0U, /*!< Hysteresis level 0. */
AnnaBridge 189:f392fc9709a3 77 kCMP_HysteresisLevel1 = 1U, /*!< Hysteresis level 1. */
AnnaBridge 189:f392fc9709a3 78 kCMP_HysteresisLevel2 = 2U, /*!< Hysteresis level 2. */
AnnaBridge 189:f392fc9709a3 79 kCMP_HysteresisLevel3 = 3U, /*!< Hysteresis level 3. */
AnnaBridge 189:f392fc9709a3 80 } cmp_hysteresis_mode_t;
AnnaBridge 189:f392fc9709a3 81
AnnaBridge 189:f392fc9709a3 82 /*!
AnnaBridge 189:f392fc9709a3 83 * @brief CMP Voltage Reference source.
AnnaBridge 189:f392fc9709a3 84 */
AnnaBridge 189:f392fc9709a3 85 typedef enum _cmp_reference_voltage_source
AnnaBridge 189:f392fc9709a3 86 {
AnnaBridge 189:f392fc9709a3 87 kCMP_VrefSourceVin1 = 0U, /*!< Vin1 is selected as a resistor ladder network supply reference Vin. */
AnnaBridge 189:f392fc9709a3 88 kCMP_VrefSourceVin2 = 1U, /*!< Vin2 is selected as a resistor ladder network supply reference Vin. */
AnnaBridge 189:f392fc9709a3 89 } cmp_reference_voltage_source_t;
AnnaBridge 189:f392fc9709a3 90
AnnaBridge 189:f392fc9709a3 91 /*!
AnnaBridge 189:f392fc9709a3 92 * @brief Configures the comparator.
AnnaBridge 189:f392fc9709a3 93 */
AnnaBridge 189:f392fc9709a3 94 typedef struct _cmp_config
AnnaBridge 189:f392fc9709a3 95 {
AnnaBridge 189:f392fc9709a3 96 bool enableCmp; /*!< Enable the CMP module. */
AnnaBridge 189:f392fc9709a3 97 cmp_hysteresis_mode_t hysteresisMode; /*!< CMP Hysteresis mode. */
AnnaBridge 189:f392fc9709a3 98 bool enableHighSpeed; /*!< Enable High-speed (HS) comparison mode. */
AnnaBridge 189:f392fc9709a3 99 bool enableInvertOutput; /*!< Enable the inverted comparator output. */
AnnaBridge 189:f392fc9709a3 100 bool useUnfilteredOutput; /*!< Set the compare output(COUT) to equal COUTA(true) or COUT(false). */
AnnaBridge 189:f392fc9709a3 101 bool enablePinOut; /*!< The comparator output is available on the associated pin. */
AnnaBridge 189:f392fc9709a3 102 #if defined(FSL_FEATURE_CMP_HAS_TRIGGER_MODE) && FSL_FEATURE_CMP_HAS_TRIGGER_MODE
AnnaBridge 189:f392fc9709a3 103 bool enableTriggerMode; /*!< Enable the trigger mode. */
AnnaBridge 189:f392fc9709a3 104 #endif /* FSL_FEATURE_CMP_HAS_TRIGGER_MODE */
AnnaBridge 189:f392fc9709a3 105 } cmp_config_t;
AnnaBridge 189:f392fc9709a3 106
AnnaBridge 189:f392fc9709a3 107 /*!
AnnaBridge 189:f392fc9709a3 108 * @brief Configures the filter.
AnnaBridge 189:f392fc9709a3 109 */
AnnaBridge 189:f392fc9709a3 110 typedef struct _cmp_filter_config
AnnaBridge 189:f392fc9709a3 111 {
AnnaBridge 189:f392fc9709a3 112 #if defined(FSL_FEATURE_CMP_HAS_EXTERNAL_SAMPLE_SUPPORT) && FSL_FEATURE_CMP_HAS_EXTERNAL_SAMPLE_SUPPORT
AnnaBridge 189:f392fc9709a3 113 bool enableSample; /*!< Using the external SAMPLE as a sampling clock input or using a divided bus clock. */
AnnaBridge 189:f392fc9709a3 114 #endif /* FSL_FEATURE_CMP_HAS_EXTERNAL_SAMPLE_SUPPORT */
AnnaBridge 189:f392fc9709a3 115 uint8_t filterCount; /*!< Filter Sample Count. Available range is 1-7; 0 disables the filter.*/
AnnaBridge 189:f392fc9709a3 116 uint8_t filterPeriod; /*!< Filter Sample Period. The divider to the bus clock. Available range is 0-255. */
AnnaBridge 189:f392fc9709a3 117 } cmp_filter_config_t;
AnnaBridge 189:f392fc9709a3 118
AnnaBridge 189:f392fc9709a3 119 /*!
AnnaBridge 189:f392fc9709a3 120 * @brief Configures the internal DAC.
AnnaBridge 189:f392fc9709a3 121 */
AnnaBridge 189:f392fc9709a3 122 typedef struct _cmp_dac_config
AnnaBridge 189:f392fc9709a3 123 {
AnnaBridge 189:f392fc9709a3 124 cmp_reference_voltage_source_t referenceVoltageSource; /*!< Supply voltage reference source. */
AnnaBridge 189:f392fc9709a3 125 uint8_t DACValue; /*!< Value for the DAC Output Voltage. Available range is 0-63.*/
AnnaBridge 189:f392fc9709a3 126 } cmp_dac_config_t;
AnnaBridge 189:f392fc9709a3 127
AnnaBridge 189:f392fc9709a3 128 #if defined(__cplusplus)
AnnaBridge 189:f392fc9709a3 129 extern "C" {
AnnaBridge 189:f392fc9709a3 130 #endif
AnnaBridge 189:f392fc9709a3 131
AnnaBridge 189:f392fc9709a3 132 /*******************************************************************************
AnnaBridge 189:f392fc9709a3 133 * API
AnnaBridge 189:f392fc9709a3 134 ******************************************************************************/
AnnaBridge 189:f392fc9709a3 135
AnnaBridge 189:f392fc9709a3 136 /*!
AnnaBridge 189:f392fc9709a3 137 * @name Initialization
AnnaBridge 189:f392fc9709a3 138 * @{
AnnaBridge 189:f392fc9709a3 139 */
AnnaBridge 189:f392fc9709a3 140
AnnaBridge 189:f392fc9709a3 141 /*!
AnnaBridge 189:f392fc9709a3 142 * @brief Initializes the CMP.
AnnaBridge 189:f392fc9709a3 143 *
AnnaBridge 189:f392fc9709a3 144 * This function initializes the CMP module. The operations included are as follows.
AnnaBridge 189:f392fc9709a3 145 * - Enabling the clock for CMP module.
AnnaBridge 189:f392fc9709a3 146 * - Configuring the comparator.
AnnaBridge 189:f392fc9709a3 147 * - Enabling the CMP module.
AnnaBridge 189:f392fc9709a3 148 * Note that for some devices, multiple CMP instances share the same clock gate. In this case, to enable the clock for
AnnaBridge 189:f392fc9709a3 149 * any instance enables all CMPs. See the appropriate MCU reference manual for the clock assignment of the CMP.
AnnaBridge 189:f392fc9709a3 150 *
AnnaBridge 189:f392fc9709a3 151 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 152 * @param config Pointer to the configuration structure.
AnnaBridge 189:f392fc9709a3 153 */
AnnaBridge 189:f392fc9709a3 154 void CMP_Init(CMP_Type *base, const cmp_config_t *config);
AnnaBridge 189:f392fc9709a3 155
AnnaBridge 189:f392fc9709a3 156 /*!
AnnaBridge 189:f392fc9709a3 157 * @brief De-initializes the CMP module.
AnnaBridge 189:f392fc9709a3 158 *
AnnaBridge 189:f392fc9709a3 159 * This function de-initializes the CMP module. The operations included are as follows.
AnnaBridge 189:f392fc9709a3 160 * - Disabling the CMP module.
AnnaBridge 189:f392fc9709a3 161 * - Disabling the clock for CMP module.
AnnaBridge 189:f392fc9709a3 162 *
AnnaBridge 189:f392fc9709a3 163 * This function disables the clock for the CMP.
AnnaBridge 189:f392fc9709a3 164 * Note that for some devices, multiple CMP instances share the same clock gate. In this case, before disabling the
AnnaBridge 189:f392fc9709a3 165 * clock for the CMP, ensure that all the CMP instances are not used.
AnnaBridge 189:f392fc9709a3 166 *
AnnaBridge 189:f392fc9709a3 167 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 168 */
AnnaBridge 189:f392fc9709a3 169 void CMP_Deinit(CMP_Type *base);
AnnaBridge 189:f392fc9709a3 170
AnnaBridge 189:f392fc9709a3 171 /*!
AnnaBridge 189:f392fc9709a3 172 * @brief Enables/disables the CMP module.
AnnaBridge 189:f392fc9709a3 173 *
AnnaBridge 189:f392fc9709a3 174 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 175 * @param enable Enables or disables the module.
AnnaBridge 189:f392fc9709a3 176 */
AnnaBridge 189:f392fc9709a3 177 static inline void CMP_Enable(CMP_Type *base, bool enable)
AnnaBridge 189:f392fc9709a3 178 {
AnnaBridge 189:f392fc9709a3 179 if (enable)
AnnaBridge 189:f392fc9709a3 180 {
AnnaBridge 189:f392fc9709a3 181 base->CR1 |= CMP_CR1_EN_MASK;
AnnaBridge 189:f392fc9709a3 182 }
AnnaBridge 189:f392fc9709a3 183 else
AnnaBridge 189:f392fc9709a3 184 {
AnnaBridge 189:f392fc9709a3 185 base->CR1 &= ~CMP_CR1_EN_MASK;
AnnaBridge 189:f392fc9709a3 186 }
AnnaBridge 189:f392fc9709a3 187 }
AnnaBridge 189:f392fc9709a3 188
AnnaBridge 189:f392fc9709a3 189 /*!
AnnaBridge 189:f392fc9709a3 190 * @brief Initializes the CMP user configuration structure.
AnnaBridge 189:f392fc9709a3 191 *
AnnaBridge 189:f392fc9709a3 192 * This function initializes the user configuration structure to these default values.
AnnaBridge 189:f392fc9709a3 193 * @code
AnnaBridge 189:f392fc9709a3 194 * config->enableCmp = true;
AnnaBridge 189:f392fc9709a3 195 * config->hysteresisMode = kCMP_HysteresisLevel0;
AnnaBridge 189:f392fc9709a3 196 * config->enableHighSpeed = false;
AnnaBridge 189:f392fc9709a3 197 * config->enableInvertOutput = false;
AnnaBridge 189:f392fc9709a3 198 * config->useUnfilteredOutput = false;
AnnaBridge 189:f392fc9709a3 199 * config->enablePinOut = false;
AnnaBridge 189:f392fc9709a3 200 * config->enableTriggerMode = false;
AnnaBridge 189:f392fc9709a3 201 * @endcode
AnnaBridge 189:f392fc9709a3 202 * @param config Pointer to the configuration structure.
AnnaBridge 189:f392fc9709a3 203 */
AnnaBridge 189:f392fc9709a3 204 void CMP_GetDefaultConfig(cmp_config_t *config);
AnnaBridge 189:f392fc9709a3 205
AnnaBridge 189:f392fc9709a3 206 /*!
AnnaBridge 189:f392fc9709a3 207 * @brief Sets the input channels for the comparator.
AnnaBridge 189:f392fc9709a3 208 *
AnnaBridge 189:f392fc9709a3 209 * This function sets the input channels for the comparator.
AnnaBridge 189:f392fc9709a3 210 * Note that two input channels cannot be set the same way in the application. When the user selects the same input
AnnaBridge 189:f392fc9709a3 211 * from the analog mux to the positive and negative port, the comparator is disabled automatically.
AnnaBridge 189:f392fc9709a3 212 *
AnnaBridge 189:f392fc9709a3 213 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 214 * @param positiveChannel Positive side input channel number. Available range is 0-7.
AnnaBridge 189:f392fc9709a3 215 * @param negativeChannel Negative side input channel number. Available range is 0-7.
AnnaBridge 189:f392fc9709a3 216 */
AnnaBridge 189:f392fc9709a3 217 void CMP_SetInputChannels(CMP_Type *base, uint8_t positiveChannel, uint8_t negativeChannel);
AnnaBridge 189:f392fc9709a3 218
AnnaBridge 189:f392fc9709a3 219 /* @} */
AnnaBridge 189:f392fc9709a3 220
AnnaBridge 189:f392fc9709a3 221 /*!
AnnaBridge 189:f392fc9709a3 222 * @name Advanced Features
AnnaBridge 189:f392fc9709a3 223 * @{
AnnaBridge 189:f392fc9709a3 224 */
AnnaBridge 189:f392fc9709a3 225
AnnaBridge 189:f392fc9709a3 226 #if defined(FSL_FEATURE_CMP_HAS_DMA) && FSL_FEATURE_CMP_HAS_DMA
AnnaBridge 189:f392fc9709a3 227 /*!
AnnaBridge 189:f392fc9709a3 228 * @brief Enables/disables the DMA request for rising/falling events.
AnnaBridge 189:f392fc9709a3 229 *
AnnaBridge 189:f392fc9709a3 230 * This function enables/disables the DMA request for rising/falling events. Either event triggers the generation of
AnnaBridge 189:f392fc9709a3 231 * the DMA request from CMP if the DMA feature is enabled. Both events are ignored for generating the DMA request from the CMP
AnnaBridge 189:f392fc9709a3 232 * if the DMA is disabled.
AnnaBridge 189:f392fc9709a3 233 *
AnnaBridge 189:f392fc9709a3 234 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 235 * @param enable Enables or disables the feature.
AnnaBridge 189:f392fc9709a3 236 */
AnnaBridge 189:f392fc9709a3 237 void CMP_EnableDMA(CMP_Type *base, bool enable);
AnnaBridge 189:f392fc9709a3 238 #endif /* FSL_FEATURE_CMP_HAS_DMA */
AnnaBridge 189:f392fc9709a3 239
AnnaBridge 189:f392fc9709a3 240 #if defined(FSL_FEATURE_CMP_HAS_WINDOW_MODE) && FSL_FEATURE_CMP_HAS_WINDOW_MODE
AnnaBridge 189:f392fc9709a3 241 /*!
AnnaBridge 189:f392fc9709a3 242 * @brief Enables/disables the window mode.
AnnaBridge 189:f392fc9709a3 243 *
AnnaBridge 189:f392fc9709a3 244 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 245 * @param enable Enables or disables the feature.
AnnaBridge 189:f392fc9709a3 246 */
AnnaBridge 189:f392fc9709a3 247 static inline void CMP_EnableWindowMode(CMP_Type *base, bool enable)
AnnaBridge 189:f392fc9709a3 248 {
AnnaBridge 189:f392fc9709a3 249 if (enable)
AnnaBridge 189:f392fc9709a3 250 {
AnnaBridge 189:f392fc9709a3 251 base->CR1 |= CMP_CR1_WE_MASK;
AnnaBridge 189:f392fc9709a3 252 }
AnnaBridge 189:f392fc9709a3 253 else
AnnaBridge 189:f392fc9709a3 254 {
AnnaBridge 189:f392fc9709a3 255 base->CR1 &= ~CMP_CR1_WE_MASK;
AnnaBridge 189:f392fc9709a3 256 }
AnnaBridge 189:f392fc9709a3 257 }
AnnaBridge 189:f392fc9709a3 258 #endif /* FSL_FEATURE_CMP_HAS_WINDOW_MODE */
AnnaBridge 189:f392fc9709a3 259
AnnaBridge 189:f392fc9709a3 260 #if defined(FSL_FEATURE_CMP_HAS_PASS_THROUGH_MODE) && FSL_FEATURE_CMP_HAS_PASS_THROUGH_MODE
AnnaBridge 189:f392fc9709a3 261 /*!
AnnaBridge 189:f392fc9709a3 262 * @brief Enables/disables the pass through mode.
AnnaBridge 189:f392fc9709a3 263 *
AnnaBridge 189:f392fc9709a3 264 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 265 * @param enable Enables or disables the feature.
AnnaBridge 189:f392fc9709a3 266 */
AnnaBridge 189:f392fc9709a3 267 static inline void CMP_EnablePassThroughMode(CMP_Type *base, bool enable)
AnnaBridge 189:f392fc9709a3 268 {
AnnaBridge 189:f392fc9709a3 269 if (enable)
AnnaBridge 189:f392fc9709a3 270 {
AnnaBridge 189:f392fc9709a3 271 base->MUXCR |= CMP_MUXCR_PSTM_MASK;
AnnaBridge 189:f392fc9709a3 272 }
AnnaBridge 189:f392fc9709a3 273 else
AnnaBridge 189:f392fc9709a3 274 {
AnnaBridge 189:f392fc9709a3 275 base->MUXCR &= ~CMP_MUXCR_PSTM_MASK;
AnnaBridge 189:f392fc9709a3 276 }
AnnaBridge 189:f392fc9709a3 277 }
AnnaBridge 189:f392fc9709a3 278 #endif /* FSL_FEATURE_CMP_HAS_PASS_THROUGH_MODE */
AnnaBridge 189:f392fc9709a3 279
AnnaBridge 189:f392fc9709a3 280 /*!
AnnaBridge 189:f392fc9709a3 281 * @brief Configures the filter.
AnnaBridge 189:f392fc9709a3 282 *
AnnaBridge 189:f392fc9709a3 283 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 284 * @param config Pointer to the configuration structure.
AnnaBridge 189:f392fc9709a3 285 */
AnnaBridge 189:f392fc9709a3 286 void CMP_SetFilterConfig(CMP_Type *base, const cmp_filter_config_t *config);
AnnaBridge 189:f392fc9709a3 287
AnnaBridge 189:f392fc9709a3 288 /*!
AnnaBridge 189:f392fc9709a3 289 * @brief Configures the internal DAC.
AnnaBridge 189:f392fc9709a3 290 *
AnnaBridge 189:f392fc9709a3 291 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 292 * @param config Pointer to the configuration structure. "NULL" disables the feature.
AnnaBridge 189:f392fc9709a3 293 */
AnnaBridge 189:f392fc9709a3 294 void CMP_SetDACConfig(CMP_Type *base, const cmp_dac_config_t *config);
AnnaBridge 189:f392fc9709a3 295
AnnaBridge 189:f392fc9709a3 296 /*!
AnnaBridge 189:f392fc9709a3 297 * @brief Enables the interrupts.
AnnaBridge 189:f392fc9709a3 298 *
AnnaBridge 189:f392fc9709a3 299 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 300 * @param mask Mask value for interrupts. See "_cmp_interrupt_enable".
AnnaBridge 189:f392fc9709a3 301 */
AnnaBridge 189:f392fc9709a3 302 void CMP_EnableInterrupts(CMP_Type *base, uint32_t mask);
AnnaBridge 189:f392fc9709a3 303
AnnaBridge 189:f392fc9709a3 304 /*!
AnnaBridge 189:f392fc9709a3 305 * @brief Disables the interrupts.
AnnaBridge 189:f392fc9709a3 306 *
AnnaBridge 189:f392fc9709a3 307 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 308 * @param mask Mask value for interrupts. See "_cmp_interrupt_enable".
AnnaBridge 189:f392fc9709a3 309 */
AnnaBridge 189:f392fc9709a3 310 void CMP_DisableInterrupts(CMP_Type *base, uint32_t mask);
AnnaBridge 189:f392fc9709a3 311
AnnaBridge 189:f392fc9709a3 312 /* @} */
AnnaBridge 189:f392fc9709a3 313
AnnaBridge 189:f392fc9709a3 314 /*!
AnnaBridge 189:f392fc9709a3 315 * @name Results
AnnaBridge 189:f392fc9709a3 316 * @{
AnnaBridge 189:f392fc9709a3 317 */
AnnaBridge 189:f392fc9709a3 318
AnnaBridge 189:f392fc9709a3 319 /*!
AnnaBridge 189:f392fc9709a3 320 * @brief Gets the status flags.
AnnaBridge 189:f392fc9709a3 321 *
AnnaBridge 189:f392fc9709a3 322 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 323 *
AnnaBridge 189:f392fc9709a3 324 * @return Mask value for the asserted flags. See "_cmp_status_flags".
AnnaBridge 189:f392fc9709a3 325 */
AnnaBridge 189:f392fc9709a3 326 uint32_t CMP_GetStatusFlags(CMP_Type *base);
AnnaBridge 189:f392fc9709a3 327
AnnaBridge 189:f392fc9709a3 328 /*!
AnnaBridge 189:f392fc9709a3 329 * @brief Clears the status flags.
AnnaBridge 189:f392fc9709a3 330 *
AnnaBridge 189:f392fc9709a3 331 * @param base CMP peripheral base address.
AnnaBridge 189:f392fc9709a3 332 * @param mask Mask value for the flags. See "_cmp_status_flags".
AnnaBridge 189:f392fc9709a3 333 */
AnnaBridge 189:f392fc9709a3 334 void CMP_ClearStatusFlags(CMP_Type *base, uint32_t mask);
AnnaBridge 189:f392fc9709a3 335
AnnaBridge 189:f392fc9709a3 336 /* @} */
AnnaBridge 189:f392fc9709a3 337 #if defined(__cplusplus)
AnnaBridge 189:f392fc9709a3 338 }
AnnaBridge 189:f392fc9709a3 339 #endif
AnnaBridge 189:f392fc9709a3 340 /*!
AnnaBridge 189:f392fc9709a3 341 * @}
AnnaBridge 189:f392fc9709a3 342 */
AnnaBridge 189:f392fc9709a3 343 #endif /* _FSL_CMP_H_ */