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:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_DISCO_L072CZ_LRWAN1/TARGET_STM/TARGET_STM32L0/device/stm32l0xx_ll_comp.h@167:84c0a372a020
mbed library. Release version 164

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