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.

Committer:
AnnaBridge
Date:
Fri May 26 12:30:20 2017 +0100
Revision:
143:86740a56073b
Child:
167:84c0a372a020
Release 143 of the mbed library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 143:86740a56073b 1 /**
AnnaBridge 143:86740a56073b 2 ******************************************************************************
AnnaBridge 143:86740a56073b 3 * @file stm32l0xx_ll_comp.h
AnnaBridge 143:86740a56073b 4 * @author MCD Application Team
AnnaBridge 143:86740a56073b 5 * @version V1.7.0
AnnaBridge 143:86740a56073b 6 * @date 31-May-2016
AnnaBridge 143:86740a56073b 7 * @brief Header file of COMP LL module.
AnnaBridge 143:86740a56073b 8 ******************************************************************************
AnnaBridge 143:86740a56073b 9 * @attention
AnnaBridge 143:86740a56073b 10 *
AnnaBridge 143:86740a56073b 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 143:86740a56073b 12 *
AnnaBridge 143:86740a56073b 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 143:86740a56073b 14 * are permitted provided that the following conditions are met:
AnnaBridge 143:86740a56073b 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 143:86740a56073b 16 * this list of conditions and the following disclaimer.
AnnaBridge 143:86740a56073b 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 143:86740a56073b 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 143:86740a56073b 19 * and/or other materials provided with the distribution.
AnnaBridge 143:86740a56073b 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 143:86740a56073b 21 * may be used to endorse or promote products derived from this software
AnnaBridge 143:86740a56073b 22 * without specific prior written permission.
AnnaBridge 143:86740a56073b 23 *
AnnaBridge 143:86740a56073b 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 143:86740a56073b 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 143:86740a56073b 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 143:86740a56073b 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 143:86740a56073b 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 143:86740a56073b 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 143:86740a56073b 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 143:86740a56073b 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 143:86740a56073b 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 143:86740a56073b 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 143:86740a56073b 34 *
AnnaBridge 143:86740a56073b 35 ******************************************************************************
AnnaBridge 143:86740a56073b 36 */
AnnaBridge 143:86740a56073b 37
AnnaBridge 143:86740a56073b 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 143:86740a56073b 39 #ifndef __STM32L0xx_LL_COMP_H
AnnaBridge 143:86740a56073b 40 #define __STM32L0xx_LL_COMP_H
AnnaBridge 143:86740a56073b 41
AnnaBridge 143:86740a56073b 42 #ifdef __cplusplus
AnnaBridge 143:86740a56073b 43 extern "C" {
AnnaBridge 143:86740a56073b 44 #endif
AnnaBridge 143:86740a56073b 45
AnnaBridge 143:86740a56073b 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 47 #include "stm32l0xx.h"
AnnaBridge 143:86740a56073b 48
AnnaBridge 143:86740a56073b 49 /** @addtogroup STM32L0xx_LL_Driver
AnnaBridge 143:86740a56073b 50 * @{
AnnaBridge 143:86740a56073b 51 */
AnnaBridge 143:86740a56073b 52
AnnaBridge 143:86740a56073b 53 #if defined (COMP1) || defined (COMP2)
AnnaBridge 143:86740a56073b 54
AnnaBridge 143:86740a56073b 55 /** @defgroup COMP_LL COMP
AnnaBridge 143:86740a56073b 56 * @{
AnnaBridge 143:86740a56073b 57 */
AnnaBridge 143:86740a56073b 58
AnnaBridge 143:86740a56073b 59 /* Private types -------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 60 /* Private variables ---------------------------------------------------------*/
AnnaBridge 143:86740a56073b 61 /* Private constants ---------------------------------------------------------*/
AnnaBridge 143:86740a56073b 62 /** @defgroup COMP_LL_Private_Constants COMP Private Constants
AnnaBridge 143:86740a56073b 63 * @{
AnnaBridge 143:86740a56073b 64 */
AnnaBridge 143:86740a56073b 65
AnnaBridge 143:86740a56073b 66 /* COMP registers bits positions */
AnnaBridge 143:86740a56073b 67 #define LL_COMP_OUTPUT_LEVEL_BITOFFSET_POS ((uint32_t)30U) /* Value equivalent to POSITION_VAL(COMP_CSR_COMP1VALUE) */
AnnaBridge 143:86740a56073b 68
AnnaBridge 143:86740a56073b 69 /**
AnnaBridge 143:86740a56073b 70 * @}
AnnaBridge 143:86740a56073b 71 */
AnnaBridge 143:86740a56073b 72
AnnaBridge 143:86740a56073b 73 /* Private macros ------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 74 /* Exported types ------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 75 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 143:86740a56073b 76 /** @defgroup COMP_LL_ES_INIT COMP Exported Init structure
AnnaBridge 143:86740a56073b 77 * @{
AnnaBridge 143:86740a56073b 78 */
AnnaBridge 143:86740a56073b 79
AnnaBridge 143:86740a56073b 80 /**
AnnaBridge 143:86740a56073b 81 * @brief Structure definition of some features of COMP instance.
AnnaBridge 143:86740a56073b 82 */
AnnaBridge 143:86740a56073b 83 typedef struct
AnnaBridge 143:86740a56073b 84 {
AnnaBridge 143:86740a56073b 85 uint32_t PowerMode; /*!< Set comparator operating mode to adjust power and speed.
AnnaBridge 143:86740a56073b 86 This parameter can be a value of @ref COMP_LL_EC_POWERMODE
AnnaBridge 143:86740a56073b 87
AnnaBridge 143:86740a56073b 88 This feature can be modified afterwards using unitary function @ref LL_COMP_SetPowerMode(). */
AnnaBridge 143:86740a56073b 89
AnnaBridge 143:86740a56073b 90 uint32_t InputPlus; /*!< Set comparator input plus (non-inverting input).
AnnaBridge 143:86740a56073b 91 This parameter can be a value of @ref COMP_LL_EC_INPUT_PLUS
AnnaBridge 143:86740a56073b 92
AnnaBridge 143:86740a56073b 93 This feature can be modified afterwards using unitary function @ref LL_COMP_SetInputPlus(). */
AnnaBridge 143:86740a56073b 94
AnnaBridge 143:86740a56073b 95 uint32_t InputMinus; /*!< Set comparator input minus (inverting input).
AnnaBridge 143:86740a56073b 96 This parameter can be a value of @ref COMP_LL_EC_INPUT_MINUS
AnnaBridge 143:86740a56073b 97
AnnaBridge 143:86740a56073b 98 This feature can be modified afterwards using unitary function @ref LL_COMP_SetInputMinus(). */
AnnaBridge 143:86740a56073b 99
AnnaBridge 143:86740a56073b 100 uint32_t OutputPolarity; /*!< Set comparator output polarity.
AnnaBridge 143:86740a56073b 101 This parameter can be a value of @ref COMP_LL_EC_OUTPUT_POLARITY
AnnaBridge 143:86740a56073b 102
AnnaBridge 143:86740a56073b 103 This feature can be modified afterwards using unitary function @ref LL_COMP_SetOutputPolarity(). */
AnnaBridge 143:86740a56073b 104
AnnaBridge 143:86740a56073b 105 } LL_COMP_InitTypeDef;
AnnaBridge 143:86740a56073b 106
AnnaBridge 143:86740a56073b 107 /**
AnnaBridge 143:86740a56073b 108 * @}
AnnaBridge 143:86740a56073b 109 */
AnnaBridge 143:86740a56073b 110 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 143:86740a56073b 111
AnnaBridge 143:86740a56073b 112 /* Exported constants --------------------------------------------------------*/
AnnaBridge 143:86740a56073b 113 /** @defgroup COMP_LL_Exported_Constants COMP Exported Constants
AnnaBridge 143:86740a56073b 114 * @{
AnnaBridge 143:86740a56073b 115 */
AnnaBridge 143:86740a56073b 116
AnnaBridge 143:86740a56073b 117 /** @defgroup COMP_LL_EC_COMMON_WINDOWMODE Comparator common modes - Window mode
AnnaBridge 143:86740a56073b 118 * @{
AnnaBridge 143:86740a56073b 119 */
AnnaBridge 143:86740a56073b 120 #define LL_COMP_WINDOWMODE_DISABLE ((uint32_t)0x00000000U) /*!< Window mode disable: Comparators 1 and 2 are independent */
AnnaBridge 143:86740a56073b 121 #define LL_COMP_WINDOWMODE_COMP1_INPUT_PLUS_COMMON (COMP_CSR_COMP1WM) /*!< Window mode enable: Comparators instances pair COMP1 and COMP2 have their input plus connected together. The common input is COMP1 input plus (COMP2 input plus is no more accessible). */
AnnaBridge 143:86740a56073b 122 /**
AnnaBridge 143:86740a56073b 123 * @}
AnnaBridge 143:86740a56073b 124 */
AnnaBridge 143:86740a56073b 125
AnnaBridge 143:86740a56073b 126 /** @defgroup COMP_LL_EC_POWERMODE Comparator modes - Power mode
AnnaBridge 143:86740a56073b 127 * @{
AnnaBridge 143:86740a56073b 128 */
AnnaBridge 143:86740a56073b 129 #define LL_COMP_POWERMODE_ULTRALOWPOWER ((uint32_t)0x00000000U) /*!< COMP power mode to low speed (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 130 #define LL_COMP_POWERMODE_MEDIUMSPEED (COMP_CSR_COMP2SPEED) /*!< COMP power mode to fast speed (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 131 /**
AnnaBridge 143:86740a56073b 132 * @}
AnnaBridge 143:86740a56073b 133 */
AnnaBridge 143:86740a56073b 134
AnnaBridge 143:86740a56073b 135 /** @defgroup COMP_LL_EC_INPUT_PLUS Comparator inputs - Input plus (input non-inverting) selection
AnnaBridge 143:86740a56073b 136 * @{
AnnaBridge 143:86740a56073b 137 */
AnnaBridge 143:86740a56073b 138 #define LL_COMP_INPUT_PLUS_IO1 ((uint32_t)0x00000000U) /*!< Comparator input plus connected to IO1 (pin PA1 for COMP1, pin PA3 for COMP2) */
AnnaBridge 143:86740a56073b 139 #define LL_COMP_INPUT_PLUS_IO2 (COMP_CSR_COMP2INPSEL_0) /*!< Comparator input plus connected to IO2 (pin PB4 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 140 #define LL_COMP_INPUT_PLUS_IO3 (COMP_CSR_COMP2INPSEL_1) /*!< Comparator input plus connected to IO3 (pin PA5 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 141 #define LL_COMP_INPUT_PLUS_IO4 (COMP_CSR_COMP2INPSEL_0 | COMP_CSR_COMP2INPSEL_1) /*!< Comparator input plus connected to IO4 (pin PB6 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 142 #define LL_COMP_INPUT_PLUS_IO5 (COMP_CSR_COMP2INPSEL_2) /*!< Comparator input plus connected to IO5 (pin PB7 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 143 #if defined (STM32L011xx) || defined (STM32L021xx)
AnnaBridge 143:86740a56073b 144 #define LL_COMP_INPUT_PLUS_IO6 (COMP_CSR_COMP2INPSEL_2 | COMP_CSR_COMP2INPSEL_0) /*!< Comparator input plus connected to IO6 (pin PA7 for COMP2) (specific to COMP instance: COMP2) (Available only on devices STM32L0 category 1) */
AnnaBridge 143:86740a56073b 145 #endif
AnnaBridge 143:86740a56073b 146 /**
AnnaBridge 143:86740a56073b 147 * @}
AnnaBridge 143:86740a56073b 148 */
AnnaBridge 143:86740a56073b 149
AnnaBridge 143:86740a56073b 150 /** @defgroup COMP_LL_EC_INPUT_MINUS Comparator inputs - Input minus (input inverting) selection
AnnaBridge 143:86740a56073b 151 * @{
AnnaBridge 143:86740a56073b 152 */
AnnaBridge 143:86740a56073b 153 #define LL_COMP_INPUT_MINUS_1_4VREFINT (COMP_CSR_COMP2INNSEL_2 ) /*!< Comparator input minus connected to 1/4 VrefInt (specifity of COMP2 related to path to enable via SYSCFG: refer to comment in function @ref LL_COMP_SetInputMinus() ) (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 154 #define LL_COMP_INPUT_MINUS_1_2VREFINT (COMP_CSR_COMP2INNSEL_2 | COMP_CSR_COMP2INNSEL_0) /*!< Comparator input minus connected to 1/2 VrefInt (specifity of COMP2 related to path to enable via SYSCFG: refer to comment in function @ref LL_COMP_SetInputMinus() ) (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 155 #define LL_COMP_INPUT_MINUS_3_4VREFINT (COMP_CSR_COMP2INNSEL_2 | COMP_CSR_COMP2INNSEL_1 ) /*!< Comparator input minus connected to 3/4 VrefInt (specifity of COMP2 related to path to enable via SYSCFG: refer to comment in function @ref LL_COMP_SetInputMinus() ) (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 156 #define LL_COMP_INPUT_MINUS_VREFINT ((uint32_t)0x00000000U) /*!< Comparator input minus connected to VrefInt (specifity of COMP2 related to path to enable via SYSCFG: refer to comment in function @ref LL_COMP_SetInputMinus() ) */
AnnaBridge 143:86740a56073b 157 #define LL_COMP_INPUT_MINUS_DAC1_CH1 ( COMP_CSR_COMP2INNSEL_1 ) /*!< Comparator input minus connected to DAC1 channel 1 (DAC_OUT1) */
AnnaBridge 143:86740a56073b 158 #define LL_COMP_INPUT_MINUS_DAC1_CH2 ( COMP_CSR_COMP2INNSEL_1 | COMP_CSR_COMP2INNSEL_0) /*!< Comparator input minus connected to DAC1 channel 2 (DAC_OUT2) */
AnnaBridge 143:86740a56073b 159 #define LL_COMP_INPUT_MINUS_IO1 ( COMP_CSR_COMP2INNSEL_0) /*!< Comparator input minus connected to IO1 (pin PA0 for COMP1, pin PA2 for COMP2) */
AnnaBridge 143:86740a56073b 160 #define LL_COMP_INPUT_MINUS_IO2 (COMP_CSR_COMP2INNSEL_2 | COMP_CSR_COMP2INNSEL_1 | COMP_CSR_COMP2INNSEL_0) /*!< Comparator input minus connected to IO2 (pin PB3 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 143:86740a56073b 161 /**
AnnaBridge 143:86740a56073b 162 * @}
AnnaBridge 143:86740a56073b 163 */
AnnaBridge 143:86740a56073b 164
AnnaBridge 143:86740a56073b 165 /** @defgroup COMP_LL_EC_OUTPUT_SELECTION_LPTIM Comparator output - Output selection specific to LPTIM peripheral
AnnaBridge 143:86740a56073b 166 * @{
AnnaBridge 143:86740a56073b 167 */
AnnaBridge 143:86740a56073b 168 #define LL_COMP_OUTPUT_LPTIM1_IN1_COMP1 (COMP_CSR_COMP1LPTIM1IN1) /*!< COMP output connected to TIM2 input capture 4 */
AnnaBridge 143:86740a56073b 169 #define LL_COMP_OUTPUT_LPTIM1_IN1_COMP2 (COMP_CSR_COMP2LPTIM1IN1) /*!< COMP output connected to TIM2 input capture 4 */
AnnaBridge 143:86740a56073b 170 #define LL_COMP_OUTPUT_LPTIM1_IN2_COMP2 (COMP_CSR_COMP2LPTIM1IN2) /*!< COMP output connected to TIM2 input capture 4 */
AnnaBridge 143:86740a56073b 171 /**
AnnaBridge 143:86740a56073b 172 * @}
AnnaBridge 143:86740a56073b 173 */
AnnaBridge 143:86740a56073b 174
AnnaBridge 143:86740a56073b 175 /** @defgroup COMP_LL_EC_OUTPUT_POLARITY Comparator output - Output polarity
AnnaBridge 143:86740a56073b 176 * @{
AnnaBridge 143:86740a56073b 177 */
AnnaBridge 143:86740a56073b 178 #define LL_COMP_OUTPUTPOL_NONINVERTED ((uint32_t)0x00000000U) /*!< COMP output polarity is not inverted: comparator output is high when the plus (non-inverting) input is at a higher voltage than the minus (inverting) input */
AnnaBridge 143:86740a56073b 179 #define LL_COMP_OUTPUTPOL_INVERTED (COMP_CSR_COMP1POLARITY) /*!< COMP output polarity is inverted: comparator output is low when the plus (non-inverting) input is at a lower voltage than the minus (inverting) input */
AnnaBridge 143:86740a56073b 180
AnnaBridge 143:86740a56073b 181 /**
AnnaBridge 143:86740a56073b 182 * @}
AnnaBridge 143:86740a56073b 183 */
AnnaBridge 143:86740a56073b 184
AnnaBridge 143:86740a56073b 185 /** @defgroup COMP_LL_EC_OUTPUT_LEVEL Comparator output - Output level
AnnaBridge 143:86740a56073b 186 * @{
AnnaBridge 143:86740a56073b 187 */
AnnaBridge 143:86740a56073b 188 #define LL_COMP_OUTPUT_LEVEL_LOW ((uint32_t)0x00000000U) /*!< Comparator output level low (if the polarity is not inverted, otherwise to be complemented) */
AnnaBridge 143:86740a56073b 189 #define LL_COMP_OUTPUT_LEVEL_HIGH ((uint32_t)0x00000001U) /*!< Comparator output level high (if the polarity is not inverted, otherwise to be complemented) */
AnnaBridge 143:86740a56073b 190 /**
AnnaBridge 143:86740a56073b 191 * @}
AnnaBridge 143:86740a56073b 192 */
AnnaBridge 143:86740a56073b 193
AnnaBridge 143:86740a56073b 194 /** @defgroup COMP_LL_EC_HW_DELAYS Definitions of COMP hardware constraints delays
AnnaBridge 143:86740a56073b 195 * @note Only COMP IP HW delays are defined in COMP LL driver driver,
AnnaBridge 143:86740a56073b 196 * not timeout values.
AnnaBridge 143:86740a56073b 197 * For details on delays values, refer to descriptions in source code
AnnaBridge 143:86740a56073b 198 * above each literal definition.
AnnaBridge 143:86740a56073b 199 * @{
AnnaBridge 143:86740a56073b 200 */
AnnaBridge 143:86740a56073b 201
AnnaBridge 143:86740a56073b 202 /* Delay for comparator startup time. */
AnnaBridge 143:86740a56073b 203 /* Note: Delay required to reach propagation delay specification. */
AnnaBridge 143:86740a56073b 204 /* Literal set to maximum value (refer to device datasheet, */
AnnaBridge 143:86740a56073b 205 /* parameter "tSTART"). */
AnnaBridge 143:86740a56073b 206 /* Unit: us */
AnnaBridge 143:86740a56073b 207 #define LL_COMP_DELAY_STARTUP_US ((uint32_t) 25U) /*!< Delay for COMP startup time */
AnnaBridge 143:86740a56073b 208
AnnaBridge 143:86740a56073b 209 /* Delay for comparator voltage scaler stabilization time */
AnnaBridge 143:86740a56073b 210 /* (voltage from VrefInt, delay based on VrefInt startup time). */
AnnaBridge 143:86740a56073b 211 /* Literal set to maximum value (refer to device datasheet, */
AnnaBridge 143:86740a56073b 212 /* parameter "TVREFINT"). */
AnnaBridge 143:86740a56073b 213 /* Unit: us */
AnnaBridge 143:86740a56073b 214 #define LL_COMP_DELAY_VOLTAGE_SCALER_STAB_US ((uint32_t)3000U) /*!< Delay for COMP voltage scaler stabilization time */
AnnaBridge 143:86740a56073b 215
AnnaBridge 143:86740a56073b 216 /**
AnnaBridge 143:86740a56073b 217 * @}
AnnaBridge 143:86740a56073b 218 */
AnnaBridge 143:86740a56073b 219
AnnaBridge 143:86740a56073b 220 /**
AnnaBridge 143:86740a56073b 221 * @}
AnnaBridge 143:86740a56073b 222 */
AnnaBridge 143:86740a56073b 223
AnnaBridge 143:86740a56073b 224 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 225 /** @defgroup COMP_LL_Exported_Macros COMP Exported Macros
AnnaBridge 143:86740a56073b 226 * @{
AnnaBridge 143:86740a56073b 227 */
AnnaBridge 143:86740a56073b 228 /** @defgroup COMP_LL_EM_WRITE_READ Common write and read registers macro
AnnaBridge 143:86740a56073b 229 * @{
AnnaBridge 143:86740a56073b 230 */
AnnaBridge 143:86740a56073b 231
AnnaBridge 143:86740a56073b 232 /**
AnnaBridge 143:86740a56073b 233 * @brief Write a value in COMP register
AnnaBridge 143:86740a56073b 234 * @param __INSTANCE__ comparator instance
AnnaBridge 143:86740a56073b 235 * @param __REG__ Register to be written
AnnaBridge 143:86740a56073b 236 * @param __VALUE__ Value to be written in the register
AnnaBridge 143:86740a56073b 237 * @retval None
AnnaBridge 143:86740a56073b 238 */
AnnaBridge 143:86740a56073b 239 #define LL_COMP_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 143:86740a56073b 240
AnnaBridge 143:86740a56073b 241 /**
AnnaBridge 143:86740a56073b 242 * @brief Read a value in COMP register
AnnaBridge 143:86740a56073b 243 * @param __INSTANCE__ comparator instance
AnnaBridge 143:86740a56073b 244 * @param __REG__ Register to be read
AnnaBridge 143:86740a56073b 245 * @retval Register value
AnnaBridge 143:86740a56073b 246 */
AnnaBridge 143:86740a56073b 247 #define LL_COMP_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 143:86740a56073b 248 /**
AnnaBridge 143:86740a56073b 249 * @}
AnnaBridge 143:86740a56073b 250 */
AnnaBridge 143:86740a56073b 251
AnnaBridge 143:86740a56073b 252 /** @defgroup COMP_LL_EM_HELPER_MACRO COMP helper macro
AnnaBridge 143:86740a56073b 253 * @{
AnnaBridge 143:86740a56073b 254 */
AnnaBridge 143:86740a56073b 255
AnnaBridge 143:86740a56073b 256 /**
AnnaBridge 143:86740a56073b 257 * @brief Helper macro to select the COMP common instance
AnnaBridge 143:86740a56073b 258 * to which is belonging the selected COMP instance.
AnnaBridge 143:86740a56073b 259 * @note COMP common register instance can be used to
AnnaBridge 143:86740a56073b 260 * set parameters common to several COMP instances.
AnnaBridge 143:86740a56073b 261 * Refer to functions having argument "COMPxy_COMMON" as parameter.
AnnaBridge 143:86740a56073b 262 * @param __COMPx__ COMP instance
AnnaBridge 143:86740a56073b 263 * @retval COMP common instance or value "0" if there is no COMP common instance.
AnnaBridge 143:86740a56073b 264 */
AnnaBridge 143:86740a56073b 265 #define __LL_COMP_COMMON_INSTANCE(__COMPx__) \
AnnaBridge 143:86740a56073b 266 (COMP12_COMMON)
AnnaBridge 143:86740a56073b 267
AnnaBridge 143:86740a56073b 268 /**
AnnaBridge 143:86740a56073b 269 * @}
AnnaBridge 143:86740a56073b 270 */
AnnaBridge 143:86740a56073b 271
AnnaBridge 143:86740a56073b 272 /**
AnnaBridge 143:86740a56073b 273 * @}
AnnaBridge 143:86740a56073b 274 */
AnnaBridge 143:86740a56073b 275
AnnaBridge 143:86740a56073b 276 /* Exported functions --------------------------------------------------------*/
AnnaBridge 143:86740a56073b 277 /** @defgroup COMP_LL_Exported_Functions COMP Exported Functions
AnnaBridge 143:86740a56073b 278 * @{
AnnaBridge 143:86740a56073b 279 */
AnnaBridge 143:86740a56073b 280
AnnaBridge 143:86740a56073b 281 /** @defgroup COMP_LL_EF_Configuration_comparator_common Configuration of COMP hierarchical scope: common to several COMP instances
AnnaBridge 143:86740a56073b 282 * @{
AnnaBridge 143:86740a56073b 283 */
AnnaBridge 143:86740a56073b 284
AnnaBridge 143:86740a56073b 285 /**
AnnaBridge 143:86740a56073b 286 * @brief Set window mode of a pair of comparators instances
AnnaBridge 143:86740a56073b 287 * (2 consecutive COMP instances odd and even COMP<x> and COMP<x+1>).
AnnaBridge 143:86740a56073b 288 * @rmtoll COMP1_CSR COMP1WM LL_COMP_SetCommonWindowMode
AnnaBridge 143:86740a56073b 289 * @param COMPxy_COMMON Comparator common instance
AnnaBridge 143:86740a56073b 290 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_COMP_COMMON_INSTANCE() )
AnnaBridge 143:86740a56073b 291 * @param WindowMode This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 292 * @arg @ref LL_COMP_WINDOWMODE_DISABLE
AnnaBridge 143:86740a56073b 293 * @arg @ref LL_COMP_WINDOWMODE_COMP1_INPUT_PLUS_COMMON
AnnaBridge 143:86740a56073b 294 * @retval None
AnnaBridge 143:86740a56073b 295 */
AnnaBridge 143:86740a56073b 296 __STATIC_INLINE void LL_COMP_SetCommonWindowMode(COMP_Common_TypeDef *COMPxy_COMMON, uint32_t WindowMode)
AnnaBridge 143:86740a56073b 297 {
AnnaBridge 143:86740a56073b 298 MODIFY_REG(COMPxy_COMMON->CSR, COMP_CSR_COMP1WM, WindowMode);
AnnaBridge 143:86740a56073b 299 }
AnnaBridge 143:86740a56073b 300
AnnaBridge 143:86740a56073b 301 /**
AnnaBridge 143:86740a56073b 302 * @brief Get window mode of a pair of comparators instances
AnnaBridge 143:86740a56073b 303 * (2 consecutive COMP instances odd and even COMP<x> and COMP<x+1>).
AnnaBridge 143:86740a56073b 304 * @rmtoll COMP1_CSR COMP1WM LL_COMP_GetCommonWindowMode
AnnaBridge 143:86740a56073b 305 * @param COMPxy_COMMON Comparator common instance
AnnaBridge 143:86740a56073b 306 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_COMP_COMMON_INSTANCE() )
AnnaBridge 143:86740a56073b 307 * @retval Returned value can be one of the following values:
AnnaBridge 143:86740a56073b 308 * @arg @ref LL_COMP_WINDOWMODE_DISABLE
AnnaBridge 143:86740a56073b 309 * @arg @ref LL_COMP_WINDOWMODE_COMP1_INPUT_PLUS_COMMON
AnnaBridge 143:86740a56073b 310 */
AnnaBridge 143:86740a56073b 311 __STATIC_INLINE uint32_t LL_COMP_GetCommonWindowMode(COMP_Common_TypeDef *COMPxy_COMMON)
AnnaBridge 143:86740a56073b 312 {
AnnaBridge 143:86740a56073b 313 return (uint32_t)(READ_BIT(COMPxy_COMMON->CSR, COMP_CSR_COMP1WM));
AnnaBridge 143:86740a56073b 314 }
AnnaBridge 143:86740a56073b 315
AnnaBridge 143:86740a56073b 316 /**
AnnaBridge 143:86740a56073b 317 * @}
AnnaBridge 143:86740a56073b 318 */
AnnaBridge 143:86740a56073b 319
AnnaBridge 143:86740a56073b 320 /** @defgroup COMP_LL_EF_Configuration_comparator_modes Configuration of comparator modes
AnnaBridge 143:86740a56073b 321 * @{
AnnaBridge 143:86740a56073b 322 */
AnnaBridge 143:86740a56073b 323
AnnaBridge 143:86740a56073b 324 /**
AnnaBridge 143:86740a56073b 325 * @brief Set comparator instance operating mode to adjust power and speed.
AnnaBridge 143:86740a56073b 326 * @rmtoll COMP2_CSR COMP2SPEED LL_COMP_SetPowerMode
AnnaBridge 143:86740a56073b 327 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 328 * @param PowerMode This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 329 * @arg @ref LL_COMP_POWERMODE_MEDIUMSPEED (1)
AnnaBridge 143:86740a56073b 330 * @arg @ref LL_COMP_POWERMODE_ULTRALOWPOWER (1)
AnnaBridge 143:86740a56073b 331 *
AnnaBridge 143:86740a56073b 332 * (1) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 333 * @retval None
AnnaBridge 143:86740a56073b 334 */
AnnaBridge 143:86740a56073b 335 __STATIC_INLINE void LL_COMP_SetPowerMode(COMP_TypeDef *COMPx, uint32_t PowerMode)
AnnaBridge 143:86740a56073b 336 {
AnnaBridge 143:86740a56073b 337 MODIFY_REG(COMPx->CSR, COMP_CSR_COMP2SPEED, PowerMode);
AnnaBridge 143:86740a56073b 338 }
AnnaBridge 143:86740a56073b 339
AnnaBridge 143:86740a56073b 340 /**
AnnaBridge 143:86740a56073b 341 * @brief Get comparator instance operating mode to adjust power and speed.
AnnaBridge 143:86740a56073b 342 * @note Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 343 * @rmtoll COMP2_CSR COMP2SPEED LL_COMP_GetPowerMode\n
AnnaBridge 143:86740a56073b 344 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 345 * @retval Returned value can be one of the following values:
AnnaBridge 143:86740a56073b 346 * @arg @ref LL_COMP_POWERMODE_MEDIUMSPEED (1)
AnnaBridge 143:86740a56073b 347 * @arg @ref LL_COMP_POWERMODE_ULTRALOWPOWER (1)
AnnaBridge 143:86740a56073b 348 *
AnnaBridge 143:86740a56073b 349 * (1) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 350 */
AnnaBridge 143:86740a56073b 351 __STATIC_INLINE uint32_t LL_COMP_GetPowerMode(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 352 {
AnnaBridge 143:86740a56073b 353 return (uint32_t)(READ_BIT(COMPx->CSR, COMP_CSR_COMP2SPEED));
AnnaBridge 143:86740a56073b 354 }
AnnaBridge 143:86740a56073b 355
AnnaBridge 143:86740a56073b 356 /**
AnnaBridge 143:86740a56073b 357 * @}
AnnaBridge 143:86740a56073b 358 */
AnnaBridge 143:86740a56073b 359
AnnaBridge 143:86740a56073b 360 /** @defgroup COMP_LL_EF_Configuration_comparator_inputs Configuration of comparator inputs
AnnaBridge 143:86740a56073b 361 * @{
AnnaBridge 143:86740a56073b 362 */
AnnaBridge 143:86740a56073b 363
AnnaBridge 143:86740a56073b 364 /**
AnnaBridge 143:86740a56073b 365 * @brief Set comparator inputs minus (inverting) and plus (non-inverting).
AnnaBridge 143:86740a56073b 366 * @note This function shall only be used for COMP2.
AnnaBridge 143:86740a56073b 367 * For setting COMP1 input it is recommended to use LL_COMP_SetInputMinus()
AnnaBridge 143:86740a56073b 368 * Plus (non-inverting) input is not configurable on COMP1.
AnnaBridge 143:86740a56073b 369 * Using this function for COMP1 will corrupt COMP1WM register
AnnaBridge 143:86740a56073b 370 * @note On this STM32 serie, specificity if using COMP instance COMP2
AnnaBridge 143:86740a56073b 371 * with COMP input based on VrefInt (VrefInt or subdivision
AnnaBridge 143:86740a56073b 372 * of VrefInt): scaler bridge is based on VrefInt and requires
AnnaBridge 143:86740a56073b 373 * to enable path from VrefInt (refer to literal
AnnaBridge 143:86740a56073b 374 * SYSCFG_CFGR3_ENBUFLP_VREFINT_COMP).
AnnaBridge 143:86740a56073b 375 * @rmtoll COMP2_CSR COMP2INNSEL LL_COMP_ConfigInputs\n
AnnaBridge 143:86740a56073b 376 * COMP2_CSR COMP2INPSEL LL_COMP_ConfigInputs
AnnaBridge 143:86740a56073b 377 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 378 * @param InputMinus This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 379 * @arg @ref LL_COMP_INPUT_MINUS_VREFINT
AnnaBridge 143:86740a56073b 380 * @arg @ref LL_COMP_INPUT_MINUS_IO1
AnnaBridge 143:86740a56073b 381 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH1
AnnaBridge 143:86740a56073b 382 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH2
AnnaBridge 143:86740a56073b 383 * @arg @ref LL_COMP_INPUT_MINUS_1_4VREFINT
AnnaBridge 143:86740a56073b 384 * @arg @ref LL_COMP_INPUT_MINUS_1_2VREFINT
AnnaBridge 143:86740a56073b 385 * @arg @ref LL_COMP_INPUT_MINUS_3_4VREFINT
AnnaBridge 143:86740a56073b 386 * @arg @ref LL_COMP_INPUT_MINUS_IO2
AnnaBridge 143:86740a56073b 387 * @param InputPlus This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 388 * @arg @ref LL_COMP_INPUT_PLUS_IO1 (1)
AnnaBridge 143:86740a56073b 389 * @arg @ref LL_COMP_INPUT_PLUS_IO2 (1)
AnnaBridge 143:86740a56073b 390 * @arg @ref LL_COMP_INPUT_PLUS_IO3 (1)
AnnaBridge 143:86740a56073b 391 * @arg @ref LL_COMP_INPUT_PLUS_IO4 (1)
AnnaBridge 143:86740a56073b 392 * @arg @ref LL_COMP_INPUT_PLUS_IO5 (1)
AnnaBridge 143:86740a56073b 393 * @arg @ref LL_COMP_INPUT_PLUS_IO6 (1)(2)
AnnaBridge 143:86740a56073b 394 *
AnnaBridge 143:86740a56073b 395 * (1) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 396 * (2) Available only on devices STM32L0 category 1.
AnnaBridge 143:86740a56073b 397 * @retval None
AnnaBridge 143:86740a56073b 398 */
AnnaBridge 143:86740a56073b 399 __STATIC_INLINE void LL_COMP_ConfigInputs(COMP_TypeDef *COMPx, uint32_t InputMinus, uint32_t InputPlus)
AnnaBridge 143:86740a56073b 400 {
AnnaBridge 143:86740a56073b 401 MODIFY_REG(COMPx->CSR,
AnnaBridge 143:86740a56073b 402 COMP_CSR_COMP2INNSEL | COMP_CSR_COMP2INPSEL,
AnnaBridge 143:86740a56073b 403 InputMinus | InputPlus);
AnnaBridge 143:86740a56073b 404 }
AnnaBridge 143:86740a56073b 405
AnnaBridge 143:86740a56073b 406 /**
AnnaBridge 143:86740a56073b 407 * @brief Set comparator input plus (non-inverting).
AnnaBridge 143:86740a56073b 408 * @note Only COMP2 allows to set the input plus (non-inverting).
AnnaBridge 143:86740a56073b 409 * For COMP1 it is always PA1 IO, except when Windows Mode is selected.
AnnaBridge 143:86740a56073b 410 * @rmtoll COMP2_CSR COMP2INPSEL LL_COMP_SetInputPlus
AnnaBridge 143:86740a56073b 411 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 412 * @param InputPlus This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 413 * @arg @ref LL_COMP_INPUT_PLUS_IO1 (1)
AnnaBridge 143:86740a56073b 414 * @arg @ref LL_COMP_INPUT_PLUS_IO2 (1)
AnnaBridge 143:86740a56073b 415 * @arg @ref LL_COMP_INPUT_PLUS_IO3 (1)
AnnaBridge 143:86740a56073b 416 * @arg @ref LL_COMP_INPUT_PLUS_IO4 (1)
AnnaBridge 143:86740a56073b 417 * @arg @ref LL_COMP_INPUT_PLUS_IO5 (1)
AnnaBridge 143:86740a56073b 418 * @arg @ref LL_COMP_INPUT_PLUS_IO6 (1)(2)
AnnaBridge 143:86740a56073b 419 *
AnnaBridge 143:86740a56073b 420 * (1) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 421 * (2) Available only on devices STM32L0 category 1.
AnnaBridge 143:86740a56073b 422 * @retval None
AnnaBridge 143:86740a56073b 423 */
AnnaBridge 143:86740a56073b 424 __STATIC_INLINE void LL_COMP_SetInputPlus(COMP_TypeDef *COMPx, uint32_t InputPlus)
AnnaBridge 143:86740a56073b 425 {
AnnaBridge 143:86740a56073b 426 MODIFY_REG(COMPx->CSR, COMP_CSR_COMP2INPSEL, InputPlus);
AnnaBridge 143:86740a56073b 427 }
AnnaBridge 143:86740a56073b 428
AnnaBridge 143:86740a56073b 429 /**
AnnaBridge 143:86740a56073b 430 * @brief Get comparator input plus (non-inverting).
AnnaBridge 143:86740a56073b 431 * @note Only COMP2 allows to set the input plus (non-inverting).
AnnaBridge 143:86740a56073b 432 * For COMP1 it is always PA1 IO, except when Windows Mode is selected.
AnnaBridge 143:86740a56073b 433 * @rmtoll COMP2_CSR COMP2INPSEL LL_COMP_GetInputPlus
AnnaBridge 143:86740a56073b 434 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 435 * @retval Returned value can be one of the following values:
AnnaBridge 143:86740a56073b 436 * @arg @ref LL_COMP_INPUT_PLUS_IO1 (1)
AnnaBridge 143:86740a56073b 437 * @arg @ref LL_COMP_INPUT_PLUS_IO2 (1)
AnnaBridge 143:86740a56073b 438 * @arg @ref LL_COMP_INPUT_PLUS_IO3 (1)
AnnaBridge 143:86740a56073b 439 * @arg @ref LL_COMP_INPUT_PLUS_IO4 (1)
AnnaBridge 143:86740a56073b 440 * @arg @ref LL_COMP_INPUT_PLUS_IO5 (1)
AnnaBridge 143:86740a56073b 441 * @arg @ref LL_COMP_INPUT_PLUS_IO6 (1)(2)
AnnaBridge 143:86740a56073b 442 *
AnnaBridge 143:86740a56073b 443 * (1) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 444 * (2) Available only on devices STM32L0 category 1.
AnnaBridge 143:86740a56073b 445 */
AnnaBridge 143:86740a56073b 446 __STATIC_INLINE uint32_t LL_COMP_GetInputPlus(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 447 {
AnnaBridge 143:86740a56073b 448 return (uint32_t)(READ_BIT(COMPx->CSR, COMP_CSR_COMP2INPSEL));
AnnaBridge 143:86740a56073b 449 }
AnnaBridge 143:86740a56073b 450
AnnaBridge 143:86740a56073b 451 /**
AnnaBridge 143:86740a56073b 452 * @brief Set comparator input minus (inverting).
AnnaBridge 143:86740a56073b 453 * @note In case of comparator input selected to be connected to IO:
AnnaBridge 143:86740a56073b 454 * GPIO pins are specific to each comparator instance.
AnnaBridge 143:86740a56073b 455 * Refer to description of parameters or to reference manual.
AnnaBridge 143:86740a56073b 456 * @note On this STM32 serie, specificity if using COMP instance COMP2
AnnaBridge 143:86740a56073b 457 * with COMP input based on VrefInt (VrefInt or subdivision
AnnaBridge 143:86740a56073b 458 * of VrefInt): scaler bridge is based on VrefInt and requires
AnnaBridge 143:86740a56073b 459 * to enable path from VrefInt (refer to literal
AnnaBridge 143:86740a56073b 460 * SYSCFG_CFGR3_ENBUFLP_VREFINT_COMP).
AnnaBridge 143:86740a56073b 461 * @rmtoll COMP1_CSR COMP1INNSEL LL_COMP_SetInputMinus\n
AnnaBridge 143:86740a56073b 462 * COMP2_CSR COMP2INNSEL LL_COMP_SetInputMinus
AnnaBridge 143:86740a56073b 463 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 464 * @param InputMinus This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 465 * @arg @ref LL_COMP_INPUT_MINUS_VREFINT
AnnaBridge 143:86740a56073b 466 * @arg @ref LL_COMP_INPUT_MINUS_IO1
AnnaBridge 143:86740a56073b 467 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH1
AnnaBridge 143:86740a56073b 468 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH2
AnnaBridge 143:86740a56073b 469 * @arg @ref LL_COMP_INPUT_MINUS_1_4VREFINT (*)
AnnaBridge 143:86740a56073b 470 * @arg @ref LL_COMP_INPUT_MINUS_1_2VREFINT (*)
AnnaBridge 143:86740a56073b 471 * @arg @ref LL_COMP_INPUT_MINUS_3_4VREFINT (*)
AnnaBridge 143:86740a56073b 472 * @arg @ref LL_COMP_INPUT_MINUS_IO2 (*)
AnnaBridge 143:86740a56073b 473 *
AnnaBridge 143:86740a56073b 474 * (*) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 475 * @retval None
AnnaBridge 143:86740a56073b 476 */
AnnaBridge 143:86740a56073b 477 __STATIC_INLINE void LL_COMP_SetInputMinus(COMP_TypeDef *COMPx, uint32_t InputMinus)
AnnaBridge 143:86740a56073b 478 {
AnnaBridge 143:86740a56073b 479 MODIFY_REG(COMPx->CSR, COMP_CSR_COMP2INNSEL, InputMinus);
AnnaBridge 143:86740a56073b 480 }
AnnaBridge 143:86740a56073b 481
AnnaBridge 143:86740a56073b 482 /**
AnnaBridge 143:86740a56073b 483 * @brief Get comparator input minus (inverting).
AnnaBridge 143:86740a56073b 484 * @note In case of comparator input selected to be connected to IO:
AnnaBridge 143:86740a56073b 485 * GPIO pins are specific to each comparator instance.
AnnaBridge 143:86740a56073b 486 * Refer to description of parameters or to reference manual.
AnnaBridge 143:86740a56073b 487 * @rmtoll COMP1_CSR COMP1INNSEL LL_COMP_GetInputMinus\n
AnnaBridge 143:86740a56073b 488 * COMP2_CSR COMP2INNSEL LL_COMP_GetInputMinus
AnnaBridge 143:86740a56073b 489 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 490 * @retval Returned value can be one of the following values:
AnnaBridge 143:86740a56073b 491 * @arg @ref LL_COMP_INPUT_MINUS_VREFINT
AnnaBridge 143:86740a56073b 492 * @arg @ref LL_COMP_INPUT_MINUS_IO1
AnnaBridge 143:86740a56073b 493 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH1
AnnaBridge 143:86740a56073b 494 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH2
AnnaBridge 143:86740a56073b 495 * @arg @ref LL_COMP_INPUT_MINUS_1_4VREFINT (*)
AnnaBridge 143:86740a56073b 496 * @arg @ref LL_COMP_INPUT_MINUS_1_2VREFINT (*)
AnnaBridge 143:86740a56073b 497 * @arg @ref LL_COMP_INPUT_MINUS_3_4VREFINT (*)
AnnaBridge 143:86740a56073b 498 * @arg @ref LL_COMP_INPUT_MINUS_IO2 (*)
AnnaBridge 143:86740a56073b 499 *
AnnaBridge 143:86740a56073b 500 * (*) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 501 */
AnnaBridge 143:86740a56073b 502 __STATIC_INLINE uint32_t LL_COMP_GetInputMinus(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 503 {
AnnaBridge 143:86740a56073b 504 return (uint32_t)(READ_BIT(COMPx->CSR, COMP_CSR_COMP2INNSEL));
AnnaBridge 143:86740a56073b 505 }
AnnaBridge 143:86740a56073b 506
AnnaBridge 143:86740a56073b 507 /**
AnnaBridge 143:86740a56073b 508 * @}
AnnaBridge 143:86740a56073b 509 */
AnnaBridge 143:86740a56073b 510
AnnaBridge 143:86740a56073b 511 /** @defgroup COMP_LL_EF_Configuration_comparator_output Configuration of comparator output
AnnaBridge 143:86740a56073b 512 * @{
AnnaBridge 143:86740a56073b 513 */
AnnaBridge 143:86740a56073b 514
AnnaBridge 143:86740a56073b 515 /**
AnnaBridge 143:86740a56073b 516 * @brief Set comparator output LPTIM.
AnnaBridge 143:86740a56073b 517 * @rmtoll COMP1_CSR COMP1LPTIMIN1 LL_COMP_SetOutputLPTIM\n
AnnaBridge 143:86740a56073b 518 * COMP2_CSR COMP2LPTIMIN1 LL_COMP_SetOutputLPTIM\n
AnnaBridge 143:86740a56073b 519 * COMP2_CSR COMP2LPTIMIN2 LL_COMP_SetOutputLPTIM
AnnaBridge 143:86740a56073b 520 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 521 * @param OutputLptim This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 522 * @arg @ref LL_COMP_OUTPUT_LPTIM1_IN1_COMP1 (*)
AnnaBridge 143:86740a56073b 523 * @arg @ref LL_COMP_OUTPUT_LPTIM1_IN1_COMP2 (**)
AnnaBridge 143:86740a56073b 524 * @arg @ref LL_COMP_OUTPUT_LPTIM1_IN2_COMP2 (**)
AnnaBridge 143:86740a56073b 525 *
AnnaBridge 143:86740a56073b 526 * (*) Available only on COMP instance: COMP1.\n
AnnaBridge 143:86740a56073b 527 * (**) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 528 * @retval None
AnnaBridge 143:86740a56073b 529 */
AnnaBridge 143:86740a56073b 530 __STATIC_INLINE void LL_COMP_SetOutputLPTIM(COMP_TypeDef *COMPx, uint32_t OutputLptim)
AnnaBridge 143:86740a56073b 531 {
AnnaBridge 143:86740a56073b 532 MODIFY_REG(COMPx->CSR, (COMP_CSR_COMP1LPTIM1IN1 | COMP_CSR_COMP2LPTIM1IN1 | COMP_CSR_COMP2LPTIM1IN2), OutputLptim);
AnnaBridge 143:86740a56073b 533 }
AnnaBridge 143:86740a56073b 534
AnnaBridge 143:86740a56073b 535 /**
AnnaBridge 143:86740a56073b 536 * @brief Get comparator output LPTIM.
AnnaBridge 143:86740a56073b 537 * @rmtoll COMP1_CSR COMP1LPTIMIN1 LL_COMP_GetOutputLPTIM\n
AnnaBridge 143:86740a56073b 538 * COMP2_CSR COMP2LPTIMIN1 LL_COMP_GetOutputLPTIM\n
AnnaBridge 143:86740a56073b 539 * COMP2_CSR COMP2LPTIMIN2 LL_COMP_GetOutputLPTIM
AnnaBridge 143:86740a56073b 540 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 541 * @retval Returned value can be one of the following values:
AnnaBridge 143:86740a56073b 542 * @arg @ref LL_COMP_OUTPUT_LPTIM1_IN1_COMP1 (*)
AnnaBridge 143:86740a56073b 543 * @arg @ref LL_COMP_OUTPUT_LPTIM1_IN1_COMP2 (**)
AnnaBridge 143:86740a56073b 544 * @arg @ref LL_COMP_OUTPUT_LPTIM1_IN2_COMP2 (**)
AnnaBridge 143:86740a56073b 545 *
AnnaBridge 143:86740a56073b 546 * (*) Available only on COMP instance: COMP1.\n
AnnaBridge 143:86740a56073b 547 * (**) Available only on COMP instance: COMP2.
AnnaBridge 143:86740a56073b 548 */
AnnaBridge 143:86740a56073b 549 __STATIC_INLINE uint32_t LL_COMP_GetOutputLPTIM(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 550 {
AnnaBridge 143:86740a56073b 551 return (uint32_t)(READ_BIT(COMPx->CSR, (COMP_CSR_COMP1LPTIM1IN1 | COMP_CSR_COMP2LPTIM1IN1 | COMP_CSR_COMP2LPTIM1IN2)));
AnnaBridge 143:86740a56073b 552 }
AnnaBridge 143:86740a56073b 553
AnnaBridge 143:86740a56073b 554 /**
AnnaBridge 143:86740a56073b 555 * @brief Set comparator instance output polarity.
AnnaBridge 143:86740a56073b 556 * @rmtoll COMP COMP1POLARITY LL_COMP_SetOutputPolarity
AnnaBridge 143:86740a56073b 557 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 558 * @param OutputPolarity This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 559 * @arg @ref LL_COMP_OUTPUTPOL_NONINVERTED
AnnaBridge 143:86740a56073b 560 * @arg @ref LL_COMP_OUTPUTPOL_INVERTED
AnnaBridge 143:86740a56073b 561 * @retval None
AnnaBridge 143:86740a56073b 562 */
AnnaBridge 143:86740a56073b 563 __STATIC_INLINE void LL_COMP_SetOutputPolarity(COMP_TypeDef *COMPx, uint32_t OutputPolarity)
AnnaBridge 143:86740a56073b 564 {
AnnaBridge 143:86740a56073b 565 MODIFY_REG(COMPx->CSR, COMP_CSR_COMPxPOLARITY, OutputPolarity);
AnnaBridge 143:86740a56073b 566 }
AnnaBridge 143:86740a56073b 567
AnnaBridge 143:86740a56073b 568 /**
AnnaBridge 143:86740a56073b 569 * @brief Get comparator instance output polarity.
AnnaBridge 143:86740a56073b 570 * @rmtoll COMP COMP1POLARITY LL_COMP_GetOutputPolarity
AnnaBridge 143:86740a56073b 571 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 572 * @retval Returned value can be one of the following values:
AnnaBridge 143:86740a56073b 573 * @arg @ref LL_COMP_OUTPUTPOL_NONINVERTED
AnnaBridge 143:86740a56073b 574 * @arg @ref LL_COMP_OUTPUTPOL_INVERTED
AnnaBridge 143:86740a56073b 575 */
AnnaBridge 143:86740a56073b 576 __STATIC_INLINE uint32_t LL_COMP_GetOutputPolarity(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 577 {
AnnaBridge 143:86740a56073b 578 return (uint32_t)(READ_BIT(COMPx->CSR, COMP_CSR_COMPxPOLARITY));
AnnaBridge 143:86740a56073b 579 }
AnnaBridge 143:86740a56073b 580
AnnaBridge 143:86740a56073b 581 /**
AnnaBridge 143:86740a56073b 582 * @}
AnnaBridge 143:86740a56073b 583 */
AnnaBridge 143:86740a56073b 584
AnnaBridge 143:86740a56073b 585 /** @defgroup COMP_LL_EF_Operation Operation on comparator instance
AnnaBridge 143:86740a56073b 586 * @{
AnnaBridge 143:86740a56073b 587 */
AnnaBridge 143:86740a56073b 588
AnnaBridge 143:86740a56073b 589 /**
AnnaBridge 143:86740a56073b 590 * @brief Enable comparator instance.
AnnaBridge 143:86740a56073b 591 * @note After enable from off state, comparator requires a delay
AnnaBridge 143:86740a56073b 592 * to reach reach propagation delay specification.
AnnaBridge 143:86740a56073b 593 * Refer to device datasheet, parameter "tSTART".
AnnaBridge 143:86740a56073b 594 * @rmtoll COMP1_CSR COMP1EN LL_COMP_Enable\n
AnnaBridge 143:86740a56073b 595 * COMP2_CSR COMP2EN LL_COMP_Enable
AnnaBridge 143:86740a56073b 596 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 597 * @retval None
AnnaBridge 143:86740a56073b 598 */
AnnaBridge 143:86740a56073b 599 __STATIC_INLINE void LL_COMP_Enable(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 600 {
AnnaBridge 143:86740a56073b 601 SET_BIT(COMPx->CSR, COMP_CSR_COMPxEN);
AnnaBridge 143:86740a56073b 602 }
AnnaBridge 143:86740a56073b 603
AnnaBridge 143:86740a56073b 604 /**
AnnaBridge 143:86740a56073b 605 * @brief Disable comparator instance.
AnnaBridge 143:86740a56073b 606 * @rmtoll COMP1_CSR COMP1EN LL_COMP_Disable\n
AnnaBridge 143:86740a56073b 607 * COMP2_CSR COMP2EN LL_COMP_Disable
AnnaBridge 143:86740a56073b 608 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 609 * @retval None
AnnaBridge 143:86740a56073b 610 */
AnnaBridge 143:86740a56073b 611 __STATIC_INLINE void LL_COMP_Disable(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 612 {
AnnaBridge 143:86740a56073b 613 CLEAR_BIT(COMPx->CSR, COMP_CSR_COMPxEN);
AnnaBridge 143:86740a56073b 614 }
AnnaBridge 143:86740a56073b 615
AnnaBridge 143:86740a56073b 616 /**
AnnaBridge 143:86740a56073b 617 * @brief Get comparator enable state
AnnaBridge 143:86740a56073b 618 * (0: COMP is disabled, 1: COMP is enabled)
AnnaBridge 143:86740a56073b 619 * @rmtoll COMP1_CSR COMP1EN LL_COMP_IsEnabled\n
AnnaBridge 143:86740a56073b 620 * COMP2_CSR COMP2EN LL_COMP_IsEnabled
AnnaBridge 143:86740a56073b 621 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 622 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 623 */
AnnaBridge 143:86740a56073b 624 __STATIC_INLINE uint32_t LL_COMP_IsEnabled(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 625 {
AnnaBridge 143:86740a56073b 626 return (READ_BIT(COMPx->CSR, COMP_CSR_COMPxEN) == (COMP_CSR_COMPxEN));
AnnaBridge 143:86740a56073b 627 }
AnnaBridge 143:86740a56073b 628
AnnaBridge 143:86740a56073b 629 /**
AnnaBridge 143:86740a56073b 630 * @brief Lock comparator instance.
AnnaBridge 143:86740a56073b 631 * @note Once locked, comparator configuration can be accessed in read-only.
AnnaBridge 143:86740a56073b 632 * @note The only way to unlock the comparator is a device hardware reset.
AnnaBridge 143:86740a56073b 633 * @rmtoll COMP1_CSR COMP1LOCK LL_COMP_Lock\n
AnnaBridge 143:86740a56073b 634 * COMP2_CSR COMP2LOCK LL_COMP_Lock
AnnaBridge 143:86740a56073b 635 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 636 * @retval None
AnnaBridge 143:86740a56073b 637 */
AnnaBridge 143:86740a56073b 638 __STATIC_INLINE void LL_COMP_Lock(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 639 {
AnnaBridge 143:86740a56073b 640 SET_BIT(COMPx->CSR, COMP_CSR_COMPxLOCK);
AnnaBridge 143:86740a56073b 641 }
AnnaBridge 143:86740a56073b 642
AnnaBridge 143:86740a56073b 643 /**
AnnaBridge 143:86740a56073b 644 * @brief Get comparator lock state
AnnaBridge 143:86740a56073b 645 * (0: COMP is unlocked, 1: COMP is locked).
AnnaBridge 143:86740a56073b 646 * @note Once locked, comparator configuration can be accessed in read-only.
AnnaBridge 143:86740a56073b 647 * @note The only way to unlock the comparator is a device hardware reset.
AnnaBridge 143:86740a56073b 648 * @rmtoll COMP1_CSR COMP1LOCK LL_COMP_IsLocked\n
AnnaBridge 143:86740a56073b 649 * COMP2_CSR COMP2LOCK LL_COMP_IsLocked
AnnaBridge 143:86740a56073b 650 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 651 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 652 */
AnnaBridge 143:86740a56073b 653 __STATIC_INLINE uint32_t LL_COMP_IsLocked(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 654 {
AnnaBridge 143:86740a56073b 655 return (READ_BIT(COMPx->CSR, COMP_CSR_COMPxLOCK) == (COMP_CSR_COMPxLOCK));
AnnaBridge 143:86740a56073b 656 }
AnnaBridge 143:86740a56073b 657
AnnaBridge 143:86740a56073b 658 /**
AnnaBridge 143:86740a56073b 659 * @brief Read comparator instance output level.
AnnaBridge 143:86740a56073b 660 * @note The comparator output level depends on the selected polarity
AnnaBridge 143:86740a56073b 661 * (Refer to function @ref LL_COMP_SetOutputPolarity()).
AnnaBridge 143:86740a56073b 662 * If the comparator polarity is not inverted:
AnnaBridge 143:86740a56073b 663 * - Comparator output is low when the input plus
AnnaBridge 143:86740a56073b 664 * is at a lower voltage than the input minus
AnnaBridge 143:86740a56073b 665 * - Comparator output is high when the input plus
AnnaBridge 143:86740a56073b 666 * is at a higher voltage than the input minus
AnnaBridge 143:86740a56073b 667 * If the comparator polarity is inverted:
AnnaBridge 143:86740a56073b 668 * - Comparator output is high when the input plus
AnnaBridge 143:86740a56073b 669 * is at a lower voltage than the input minus
AnnaBridge 143:86740a56073b 670 * - Comparator output is low when the input plus
AnnaBridge 143:86740a56073b 671 * is at a higher voltage than the input minus
AnnaBridge 143:86740a56073b 672 * @rmtoll COMP1_CSR COMP1VALUE LL_COMP_ReadOutputLevel\n
AnnaBridge 143:86740a56073b 673 * COMP2_CSR COMP2VALUE LL_COMP_ReadOutputLevel
AnnaBridge 143:86740a56073b 674 * @param COMPx Comparator instance
AnnaBridge 143:86740a56073b 675 * @retval Returned value can be one of the following values:
AnnaBridge 143:86740a56073b 676 * @arg @ref LL_COMP_OUTPUT_LEVEL_LOW
AnnaBridge 143:86740a56073b 677 * @arg @ref LL_COMP_OUTPUT_LEVEL_HIGH
AnnaBridge 143:86740a56073b 678 */
AnnaBridge 143:86740a56073b 679 __STATIC_INLINE uint32_t LL_COMP_ReadOutputLevel(COMP_TypeDef *COMPx)
AnnaBridge 143:86740a56073b 680 {
AnnaBridge 143:86740a56073b 681 return (uint32_t)(READ_BIT(COMPx->CSR, COMP_CSR_COMPxOUTVALUE)
AnnaBridge 143:86740a56073b 682 >> LL_COMP_OUTPUT_LEVEL_BITOFFSET_POS);
AnnaBridge 143:86740a56073b 683 }
AnnaBridge 143:86740a56073b 684
AnnaBridge 143:86740a56073b 685 /**
AnnaBridge 143:86740a56073b 686 * @}
AnnaBridge 143:86740a56073b 687 */
AnnaBridge 143:86740a56073b 688
AnnaBridge 143:86740a56073b 689 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 143:86740a56073b 690 /** @defgroup COMP_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 143:86740a56073b 691 * @{
AnnaBridge 143:86740a56073b 692 */
AnnaBridge 143:86740a56073b 693
AnnaBridge 143:86740a56073b 694 ErrorStatus LL_COMP_DeInit(COMP_TypeDef *COMPx);
AnnaBridge 143:86740a56073b 695 ErrorStatus LL_COMP_Init(COMP_TypeDef *COMPx, LL_COMP_InitTypeDef *COMP_InitStruct);
AnnaBridge 143:86740a56073b 696 void LL_COMP_StructInit(LL_COMP_InitTypeDef *COMP_InitStruct);
AnnaBridge 143:86740a56073b 697
AnnaBridge 143:86740a56073b 698 /**
AnnaBridge 143:86740a56073b 699 * @}
AnnaBridge 143:86740a56073b 700 */
AnnaBridge 143:86740a56073b 701 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 143:86740a56073b 702
AnnaBridge 143:86740a56073b 703 /**
AnnaBridge 143:86740a56073b 704 * @}
AnnaBridge 143:86740a56073b 705 */
AnnaBridge 143:86740a56073b 706
AnnaBridge 143:86740a56073b 707 /**
AnnaBridge 143:86740a56073b 708 * @}
AnnaBridge 143:86740a56073b 709 */
AnnaBridge 143:86740a56073b 710
AnnaBridge 143:86740a56073b 711 #endif /* COMP1 || COMP2 */
AnnaBridge 143:86740a56073b 712
AnnaBridge 143:86740a56073b 713 /**
AnnaBridge 143:86740a56073b 714 * @}
AnnaBridge 143:86740a56073b 715 */
AnnaBridge 143:86740a56073b 716
AnnaBridge 143:86740a56073b 717 #ifdef __cplusplus
AnnaBridge 143:86740a56073b 718 }
AnnaBridge 143:86740a56073b 719 #endif
AnnaBridge 143:86740a56073b 720
AnnaBridge 143:86740a56073b 721 #endif /* __STM32L0xx_LL_COMP_H */
AnnaBridge 143:86740a56073b 722
AnnaBridge 143:86740a56073b 723 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/