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:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**
AnnaBridge 171:3a7713b1edbc 2 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 3 * @file stm32l1xx_ll_comp.h
AnnaBridge 171:3a7713b1edbc 4 * @author MCD Application Team
AnnaBridge 171:3a7713b1edbc 5 * @brief Header file of COMP LL module.
AnnaBridge 171:3a7713b1edbc 6 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 7 * @attention
AnnaBridge 171:3a7713b1edbc 8 *
AnnaBridge 171:3a7713b1edbc 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 12 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 171:3a7713b1edbc 14 * this list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 17 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 171:3a7713b1edbc 19 * may be used to endorse or promote products derived from this software
AnnaBridge 171:3a7713b1edbc 20 * without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 21 *
AnnaBridge 171:3a7713b1edbc 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 32 *
AnnaBridge 171:3a7713b1edbc 33 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 34 */
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 171:3a7713b1edbc 37 #ifndef __STM32L1xx_LL_COMP_H
AnnaBridge 171:3a7713b1edbc 38 #define __STM32L1xx_LL_COMP_H
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 41 extern "C" {
AnnaBridge 171:3a7713b1edbc 42 #endif
AnnaBridge 171:3a7713b1edbc 43
AnnaBridge 171:3a7713b1edbc 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 45 #include "stm32l1xx.h"
AnnaBridge 171:3a7713b1edbc 46
AnnaBridge 171:3a7713b1edbc 47 /** @addtogroup STM32L1xx_LL_Driver
AnnaBridge 171:3a7713b1edbc 48 * @{
AnnaBridge 171:3a7713b1edbc 49 */
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 #if defined (COMP1) || defined (COMP2)
AnnaBridge 171:3a7713b1edbc 52
AnnaBridge 171:3a7713b1edbc 53 /** @defgroup COMP_LL COMP
AnnaBridge 171:3a7713b1edbc 54 * @{
AnnaBridge 171:3a7713b1edbc 55 */
AnnaBridge 171:3a7713b1edbc 56
AnnaBridge 171:3a7713b1edbc 57 /* Private types -------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 58 /* Private variables ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 59 /* Private constants ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 60 /** @defgroup COMP_LL_Private_Constants COMP Private Constants
AnnaBridge 171:3a7713b1edbc 61 * @{
AnnaBridge 171:3a7713b1edbc 62 */
AnnaBridge 171:3a7713b1edbc 63
AnnaBridge 171:3a7713b1edbc 64 /* COMP registers bits positions */
AnnaBridge 171:3a7713b1edbc 65 #define LL_COMP_OUTPUT_LEVEL_COMP1_BITOFFSET_POS ( 7U) /* Value equivalent to POSITION_VAL(COMP_CSR_CMP1OUT) */
AnnaBridge 171:3a7713b1edbc 66 #define LL_COMP_OUTPUT_LEVEL_COMP2_BITOFFSET_POS (13U) /* Value equivalent to POSITION_VAL(COMP_CSR_CMP2OUT) */
AnnaBridge 171:3a7713b1edbc 67 #define LL_COMP_ENABLE_COMP1_BITOFFSET_POS ( 4U) /* Value equivalent to POSITION_VAL(COMP_CSR_CMP1EN) */
AnnaBridge 171:3a7713b1edbc 68
AnnaBridge 171:3a7713b1edbc 69 /**
AnnaBridge 171:3a7713b1edbc 70 * @}
AnnaBridge 171:3a7713b1edbc 71 */
AnnaBridge 171:3a7713b1edbc 72
AnnaBridge 171:3a7713b1edbc 73 /* Private macros ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 74 /** @defgroup COMP_LL_Private_Macros COMP Private Macros
AnnaBridge 171:3a7713b1edbc 75 * @{
AnnaBridge 171:3a7713b1edbc 76 */
AnnaBridge 171:3a7713b1edbc 77
AnnaBridge 171:3a7713b1edbc 78 /**
AnnaBridge 171:3a7713b1edbc 79 * @brief Driver macro reserved for internal use: if COMP instance selected
AnnaBridge 171:3a7713b1edbc 80 * is odd (COMP1, COMP3, ...), return value '1', else return '0'.
AnnaBridge 171:3a7713b1edbc 81 * @param __COMP_INSTANCE__ COMP instance
AnnaBridge 171:3a7713b1edbc 82 * @retval If COMP instance is odd, value '1'. Else, value '0'.
AnnaBridge 171:3a7713b1edbc 83 */
AnnaBridge 171:3a7713b1edbc 84 #define __COMP_IS_INSTANCE_ODD(__COMP_INSTANCE__) \
AnnaBridge 171:3a7713b1edbc 85 ((~((uint32_t)(__COMP_INSTANCE__) - COMP_BASE)) & 0x00000001)
AnnaBridge 171:3a7713b1edbc 86
AnnaBridge 171:3a7713b1edbc 87 /**
AnnaBridge 171:3a7713b1edbc 88 * @brief Driver macro reserved for internal use: if COMP instance selected
AnnaBridge 171:3a7713b1edbc 89 * is even (COMP2, COMP4, ...), return value '1', else return '0'.
AnnaBridge 171:3a7713b1edbc 90 * @param __COMP_INSTANCE__ COMP instance
AnnaBridge 171:3a7713b1edbc 91 * @retval If COMP instance is even, value '1'. Else, value '0'.
AnnaBridge 171:3a7713b1edbc 92 */
AnnaBridge 171:3a7713b1edbc 93 #define __COMP_IS_INSTANCE_EVEN(__COMP_INSTANCE__) \
AnnaBridge 171:3a7713b1edbc 94 ((uint32_t)(__COMP_INSTANCE__) - COMP_BASE)
AnnaBridge 171:3a7713b1edbc 95
AnnaBridge 171:3a7713b1edbc 96 /**
AnnaBridge 171:3a7713b1edbc 97 * @}
AnnaBridge 171:3a7713b1edbc 98 */
AnnaBridge 171:3a7713b1edbc 99
AnnaBridge 171:3a7713b1edbc 100 /* Exported types ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 101 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 171:3a7713b1edbc 102 /** @defgroup COMP_LL_ES_INIT COMP Exported Init structure
AnnaBridge 171:3a7713b1edbc 103 * @{
AnnaBridge 171:3a7713b1edbc 104 */
AnnaBridge 171:3a7713b1edbc 105
AnnaBridge 171:3a7713b1edbc 106 /**
AnnaBridge 171:3a7713b1edbc 107 * @brief Structure definition of some features of COMP instance.
AnnaBridge 171:3a7713b1edbc 108 */
AnnaBridge 171:3a7713b1edbc 109 typedef struct
AnnaBridge 171:3a7713b1edbc 110 {
AnnaBridge 171:3a7713b1edbc 111 uint32_t PowerMode; /*!< Set comparator operating mode to adjust power and speed.
AnnaBridge 171:3a7713b1edbc 112 This parameter can be a value of @ref COMP_LL_EC_POWERMODE
AnnaBridge 171:3a7713b1edbc 113
AnnaBridge 171:3a7713b1edbc 114 This feature can be modified afterwards using unitary function @ref LL_COMP_SetPowerMode(). */
AnnaBridge 171:3a7713b1edbc 115
AnnaBridge 171:3a7713b1edbc 116 uint32_t InputPlus; /*!< Set comparator input plus (non-inverting input).
AnnaBridge 171:3a7713b1edbc 117 This parameter can be a value of @ref COMP_LL_EC_INPUT_PLUS
AnnaBridge 171:3a7713b1edbc 118
AnnaBridge 171:3a7713b1edbc 119 This feature can be modified afterwards using unitary function @ref LL_COMP_SetInputPlus(). */
AnnaBridge 171:3a7713b1edbc 120
AnnaBridge 171:3a7713b1edbc 121 uint32_t InputMinus; /*!< Set comparator input minus (inverting input).
AnnaBridge 171:3a7713b1edbc 122 This parameter can be a value of @ref COMP_LL_EC_INPUT_MINUS
AnnaBridge 171:3a7713b1edbc 123
AnnaBridge 171:3a7713b1edbc 124 This feature can be modified afterwards using unitary function @ref LL_COMP_SetInputMinus(). */
AnnaBridge 171:3a7713b1edbc 125
AnnaBridge 171:3a7713b1edbc 126 uint32_t OutputSelection; /*!< Set comparator output selection.
AnnaBridge 171:3a7713b1edbc 127 This parameter can be a value of @ref COMP_LL_EC_OUTPUT_SELECTION
AnnaBridge 171:3a7713b1edbc 128
AnnaBridge 171:3a7713b1edbc 129 This feature can be modified afterwards using unitary function @ref LL_COMP_SetOutputSelection(). */
AnnaBridge 171:3a7713b1edbc 130
AnnaBridge 171:3a7713b1edbc 131 } LL_COMP_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 132
AnnaBridge 171:3a7713b1edbc 133 /**
AnnaBridge 171:3a7713b1edbc 134 * @}
AnnaBridge 171:3a7713b1edbc 135 */
AnnaBridge 171:3a7713b1edbc 136 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 171:3a7713b1edbc 137
AnnaBridge 171:3a7713b1edbc 138 /* Exported constants --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 139 /** @defgroup COMP_LL_Exported_Constants COMP Exported Constants
AnnaBridge 171:3a7713b1edbc 140 * @{
AnnaBridge 171:3a7713b1edbc 141 */
AnnaBridge 171:3a7713b1edbc 142
AnnaBridge 171:3a7713b1edbc 143 /** @defgroup COMP_LL_EC_COMMON_WINDOWMODE Comparator common modes - Window mode
AnnaBridge 171:3a7713b1edbc 144 * @{
AnnaBridge 171:3a7713b1edbc 145 */
AnnaBridge 171:3a7713b1edbc 146 #define LL_COMP_WINDOWMODE_DISABLE (0x00000000U) /*!< Window mode disable: Comparators 1 and 2 are independent */
AnnaBridge 171:3a7713b1edbc 147 #define LL_COMP_WINDOWMODE_COMP2_INPUT_PLUS_COMMON (COMP_CSR_WNDWE) /*!< Window mode enable: Comparators instances pair COMP1 and COMP2 have their input plus connected together. The common input is COMP2 input plus (COMP1 input plus is no more accessible, either from GPIO and from ADC channel VCOMP). */
AnnaBridge 171:3a7713b1edbc 148 /**
AnnaBridge 171:3a7713b1edbc 149 * @}
AnnaBridge 171:3a7713b1edbc 150 */
AnnaBridge 171:3a7713b1edbc 151
AnnaBridge 171:3a7713b1edbc 152 /** @defgroup COMP_LL_EC_POWERMODE Comparator modes - Power mode
AnnaBridge 171:3a7713b1edbc 153 * @{
AnnaBridge 171:3a7713b1edbc 154 */
AnnaBridge 171:3a7713b1edbc 155 #define LL_COMP_POWERMODE_ULTRALOWPOWER (0x00000000U) /*!< COMP power mode to low speed (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 156 #define LL_COMP_POWERMODE_MEDIUMSPEED (COMP_CSR_SPEED) /*!< COMP power mode to fast speed (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 157 /**
AnnaBridge 171:3a7713b1edbc 158 * @}
AnnaBridge 171:3a7713b1edbc 159 */
AnnaBridge 171:3a7713b1edbc 160
AnnaBridge 171:3a7713b1edbc 161 /** @defgroup COMP_LL_EC_INPUT_PLUS Comparator inputs - Input plus (input non-inverting) selection
AnnaBridge 171:3a7713b1edbc 162 * @{
AnnaBridge 171:3a7713b1edbc 163 */
AnnaBridge 171:3a7713b1edbc 164 #define LL_COMP_INPUT_PLUS_NONE (0x00000000U) /*!< Comparator input plus connected not connected */
AnnaBridge 171:3a7713b1edbc 165 #define LL_COMP_INPUT_PLUS_IO1 (RI_ASCR2_GR6_1) /*!< Comparator input plus connected to IO1 (pin PB4 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 166 #define LL_COMP_INPUT_PLUS_IO2 (RI_ASCR2_GR6_2) /*!< Comparator input plus connected to IO1 (pin PB5 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 167 #if defined(RI_ASCR1_CH_31)
AnnaBridge 171:3a7713b1edbc 168 #define LL_COMP_INPUT_PLUS_IO3 (RI_ASCR2_GR6_3) /*!< Comparator input plus connected to IO1 (pin PB6 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 169 #define LL_COMP_INPUT_PLUS_IO4 (RI_ASCR2_GR6_4) /*!< Comparator input plus connected to IO1 (pin PB7 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 170 #endif
AnnaBridge 171:3a7713b1edbc 171 #define LL_COMP_INPUT_PLUS_IO5 (RI_ASCR1_CH_0) /*!< Comparator input plus connected to IO5 (pin PA0 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 172 #define LL_COMP_INPUT_PLUS_IO6 (RI_ASCR1_CH_1) /*!< Comparator input plus connected to IO6 (pin PA1 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 173 #define LL_COMP_INPUT_PLUS_IO7 (RI_ASCR1_CH_2) /*!< Comparator input plus connected to IO7 (pin PA2 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 174 #define LL_COMP_INPUT_PLUS_IO8 (RI_ASCR1_CH_3) /*!< Comparator input plus connected to IO8 (pin PA3 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 175 #define LL_COMP_INPUT_PLUS_IO9 (RI_ASCR1_CH_4) /*!< Comparator input plus connected to IO9 (pin PA4 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 176 #define LL_COMP_INPUT_PLUS_IO10 (RI_ASCR1_CH_5) /*!< Comparator input plus connected to IO10 (pin PA5 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 177 #define LL_COMP_INPUT_PLUS_IO11 (RI_ASCR1_CH_5) /*!< Comparator input plus connected to IO11 (pin PA5 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 178 #define LL_COMP_INPUT_PLUS_IO12 (RI_ASCR1_CH_7) /*!< Comparator input plus connected to IO12 (pin PA7 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 179 #define LL_COMP_INPUT_PLUS_IO13 (RI_ASCR1_CH_8) /*!< Comparator input plus connected to IO13 (pin PB0 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 180 #define LL_COMP_INPUT_PLUS_IO14 (RI_ASCR1_CH_9) /*!< Comparator input plus connected to IO14 (pin PB1 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 181 #define LL_COMP_INPUT_PLUS_IO15 (RI_ASCR1_CH_10) /*!< Comparator input plus connected to IO15 (pin PC0 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 182 #define LL_COMP_INPUT_PLUS_IO16 (RI_ASCR1_CH_11) /*!< Comparator input plus connected to IO16 (pin PC1 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 183 #define LL_COMP_INPUT_PLUS_IO17 (RI_ASCR1_CH_12) /*!< Comparator input plus connected to IO17 (pin PC2 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 184 #define LL_COMP_INPUT_PLUS_IO18 (RI_ASCR1_CH_13) /*!< Comparator input plus connected to IO18 (pin PC3 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 185 #define LL_COMP_INPUT_PLUS_IO19 (RI_ASCR1_CH_14) /*!< Comparator input plus connected to IO19 (pin PC4 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 186 #define LL_COMP_INPUT_PLUS_IO20 (RI_ASCR1_CH_15) /*!< Comparator input plus connected to IO20 (pin PC5 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 187 #define LL_COMP_INPUT_PLUS_IO21 (RI_ASCR1_CH_18) /*!< Comparator input plus connected to IO21 (pin PB12 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 188 #define LL_COMP_INPUT_PLUS_IO22 (RI_ASCR1_CH_19) /*!< Comparator input plus connected to IO22 (pin PB13 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 189 #define LL_COMP_INPUT_PLUS_IO23 (RI_ASCR1_CH_20) /*!< Comparator input plus connected to IO23 (pin PB14 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 190 #define LL_COMP_INPUT_PLUS_IO24 (RI_ASCR1_CH_21) /*!< Comparator input plus connected to IO24 (pin PB15 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 191 #define LL_COMP_INPUT_PLUS_IO25 (RI_ASCR1_CH_22) /*!< Comparator input plus connected to IO25 (pin PE7 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 192 #define LL_COMP_INPUT_PLUS_IO26 (RI_ASCR1_CH_23) /*!< Comparator input plus connected to IO26 (pin PE8 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 193 #define LL_COMP_INPUT_PLUS_IO27 (RI_ASCR1_CH_24) /*!< Comparator input plus connected to IO27 (pin PE9 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 194 #define LL_COMP_INPUT_PLUS_IO28 (RI_ASCR1_CH_25) /*!< Comparator input plus connected to IO28 (pin PE10 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 195 #if defined(RI_ASCR1_CH_31)
AnnaBridge 171:3a7713b1edbc 196 #define LL_COMP_INPUT_PLUS_IO29 (RI_ASCR1_CH_27) /*!< Comparator input plus connected to IO29 (pin PF6 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 197 #define LL_COMP_INPUT_PLUS_IO30 (RI_ASCR1_CH_28) /*!< Comparator input plus connected to IO30 (pin PF7 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 198 #define LL_COMP_INPUT_PLUS_IO31 (RI_ASCR1_CH_29) /*!< Comparator input plus connected to IO31 (pin PF8 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 199 #define LL_COMP_INPUT_PLUS_IO32 (RI_ASCR1_CH_30) /*!< Comparator input plus connected to IO32 (pin PF9 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 200 #define LL_COMP_INPUT_PLUS_IO33 (RI_ASCR1_CH_31) /*!< Comparator input plus connected to IO33 (pin PF10 for COMP1) (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 201 #endif
AnnaBridge 171:3a7713b1edbc 202 #if defined(OPAMP1)
AnnaBridge 171:3a7713b1edbc 203 #define LL_COMP_INPUT_PLUS_OPAMP1 (RI_ASCR1_CH_3) /*!< Comparator input plus connected to OPAMP1 output (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 204 #define LL_COMP_INPUT_PLUS_OPAMP2 (RI_ASCR1_CH_8) /*!< Comparator input plus connected to OPAMP2 output (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 205 #endif
AnnaBridge 171:3a7713b1edbc 206 #if defined(OPAMP3)
AnnaBridge 171:3a7713b1edbc 207 #define LL_COMP_INPUT_PLUS_OPAMP3 (RI_ASCR1_CH_13) /*!< Comparator input plus connected to OPAMP3 output (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 208 #endif
AnnaBridge 171:3a7713b1edbc 209 /**
AnnaBridge 171:3a7713b1edbc 210 * @}
AnnaBridge 171:3a7713b1edbc 211 */
AnnaBridge 171:3a7713b1edbc 212
AnnaBridge 171:3a7713b1edbc 213 /** @defgroup COMP_LL_EC_INPUT_MINUS Comparator inputs - Input minus (input inverting) selection
AnnaBridge 171:3a7713b1edbc 214 * @{
AnnaBridge 171:3a7713b1edbc 215 */
AnnaBridge 171:3a7713b1edbc 216 #define LL_COMP_INPUT_MINUS_1_4VREFINT (COMP_CSR_INSEL_2 | COMP_CSR_INSEL_0) /*!< Comparator input minus connected to 1/4 VrefInt (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 217 #define LL_COMP_INPUT_MINUS_1_2VREFINT (COMP_CSR_INSEL_2 ) /*!< Comparator input minus connected to 1/2 VrefInt (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 218 #define LL_COMP_INPUT_MINUS_3_4VREFINT ( COMP_CSR_INSEL_1 | COMP_CSR_INSEL_0) /*!< Comparator input minus connected to 3/4 VrefInt (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 219 #define LL_COMP_INPUT_MINUS_VREFINT ( COMP_CSR_INSEL_1 ) /*!< Comparator input minus connected to VrefInt */
AnnaBridge 171:3a7713b1edbc 220 #define LL_COMP_INPUT_MINUS_DAC1_CH1 (COMP_CSR_INSEL_2 | COMP_CSR_INSEL_1 ) /*!< Comparator input minus connected to DAC1 channel 1 (DAC_OUT1) (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 221 #define LL_COMP_INPUT_MINUS_DAC1_CH2 (COMP_CSR_INSEL_2 | COMP_CSR_INSEL_1 | COMP_CSR_INSEL_0) /*!< Comparator input minus connected to DAC1 channel 2 (DAC_OUT2) (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 222 #define LL_COMP_INPUT_MINUS_IO1 ( COMP_CSR_INSEL_0) /*!< Comparator input minus connected to IO1 (pin PB3 for COMP2) (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 223 /**
AnnaBridge 171:3a7713b1edbc 224 * @}
AnnaBridge 171:3a7713b1edbc 225 */
AnnaBridge 171:3a7713b1edbc 226
AnnaBridge 171:3a7713b1edbc 227 /** @defgroup COMP_LL_EC_INPUT_PULLING_RESISTOR Comparator input - Pulling resistor
AnnaBridge 171:3a7713b1edbc 228 * @{
AnnaBridge 171:3a7713b1edbc 229 */
AnnaBridge 171:3a7713b1edbc 230 #define LL_COMP_INPUT_MINUS_PULL_NO (0x00000000U) /*!< Comparator input minus not connected to any pulling resistor */
AnnaBridge 171:3a7713b1edbc 231 #define LL_COMP_INPUT_MINUS_PULL_UP_10K (COMP_CSR_10KPU) /*!< Comparator input minus connected to pull-up resistor of 10kOhm (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 232 #define LL_COMP_INPUT_MINUS_PULL_UP_400K (COMP_CSR_400KPU) /*!< Comparator input minus connected to pull-up resistor of 400kOhm (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 233 #define LL_COMP_INPUT_MINUS_PULL_DOWN_10K (COMP_CSR_10KPD) /*!< Comparator input minus connected to pull-down resistor of 10kOhm (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 234 #define LL_COMP_INPUT_MINUS_PULL_DOWN_400K (COMP_CSR_400KPD) /*!< Comparator input minus connected to pull-down resistor of 400kOhm (specific to COMP instance: COMP1) */
AnnaBridge 171:3a7713b1edbc 235
AnnaBridge 171:3a7713b1edbc 236 /**
AnnaBridge 171:3a7713b1edbc 237 * @}
AnnaBridge 171:3a7713b1edbc 238 */
AnnaBridge 171:3a7713b1edbc 239
AnnaBridge 171:3a7713b1edbc 240 /** @defgroup COMP_LL_EC_OUTPUT_SELECTION Comparator output - Output selection
AnnaBridge 171:3a7713b1edbc 241 * @{
AnnaBridge 171:3a7713b1edbc 242 */
AnnaBridge 171:3a7713b1edbc 243 #define LL_COMP_OUTPUT_NONE (COMP_CSR_OUTSEL_2 | COMP_CSR_OUTSEL_1 | COMP_CSR_OUTSEL_0) /*!< COMP output is not connected to other peripherals (except GPIO and EXTI that are always connected to COMP output) (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 244 #define LL_COMP_OUTPUT_TIM2_IC4 (0x00000000) /*!< COMP output connected to TIM2 input capture 4 (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 245 #define LL_COMP_OUTPUT_TIM2_OCREFCLR ( COMP_CSR_OUTSEL_0) /*!< COMP output connected to TIM2 OCREF clear (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 246 #define LL_COMP_OUTPUT_TIM3_IC4 ( COMP_CSR_OUTSEL_1 ) /*!< COMP output connected to TIM3 input capture 4 (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 247 #define LL_COMP_OUTPUT_TIM3_OCREFCLR ( COMP_CSR_OUTSEL_1 | COMP_CSR_OUTSEL_0) /*!< COMP output connected to TIM3 OCREF clear (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 248 #define LL_COMP_OUTPUT_TIM4_IC4 (COMP_CSR_OUTSEL_2 ) /*!< COMP output connected to TIM4 input capture 4 (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 249 #define LL_COMP_OUTPUT_TIM4_OCREFCLR (COMP_CSR_OUTSEL_2 | COMP_CSR_OUTSEL_0) /*!< COMP output connected to TIM4 OCREF clear (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 250 #define LL_COMP_OUTPUT_TIM10_IC1 (COMP_CSR_OUTSEL_2 | COMP_CSR_OUTSEL_1 ) /*!< COMP output connected to TIM10 input capture 1 (specific to COMP instance: COMP2) */
AnnaBridge 171:3a7713b1edbc 251 /**
AnnaBridge 171:3a7713b1edbc 252 * @}
AnnaBridge 171:3a7713b1edbc 253 */
AnnaBridge 171:3a7713b1edbc 254
AnnaBridge 171:3a7713b1edbc 255 /** @defgroup COMP_LL_EC_OUTPUT_LEVEL Comparator output - Output level
AnnaBridge 171:3a7713b1edbc 256 * @{
AnnaBridge 171:3a7713b1edbc 257 */
AnnaBridge 171:3a7713b1edbc 258 #define LL_COMP_OUTPUT_LEVEL_LOW (0x00000000U) /*!< Comparator output level low (if the polarity is not inverted, otherwise to be complemented) */
AnnaBridge 171:3a7713b1edbc 259 #define LL_COMP_OUTPUT_LEVEL_HIGH (0x00000001U) /*!< Comparator output level high (if the polarity is not inverted, otherwise to be complemented) */
AnnaBridge 171:3a7713b1edbc 260 /**
AnnaBridge 171:3a7713b1edbc 261 * @}
AnnaBridge 171:3a7713b1edbc 262 */
AnnaBridge 171:3a7713b1edbc 263
AnnaBridge 171:3a7713b1edbc 264 /** @defgroup COMP_LL_EC_HW_DELAYS Definitions of COMP hardware constraints delays
AnnaBridge 171:3a7713b1edbc 265 * @note Only COMP IP HW delays are defined in COMP LL driver driver,
AnnaBridge 171:3a7713b1edbc 266 * not timeout values.
AnnaBridge 171:3a7713b1edbc 267 * For details on delays values, refer to descriptions in source code
AnnaBridge 171:3a7713b1edbc 268 * above each literal definition.
AnnaBridge 171:3a7713b1edbc 269 * @{
AnnaBridge 171:3a7713b1edbc 270 */
AnnaBridge 171:3a7713b1edbc 271
AnnaBridge 171:3a7713b1edbc 272 /* Delay for comparator startup time. */
AnnaBridge 171:3a7713b1edbc 273 /* Note: Delay required to reach propagation delay specification. */
AnnaBridge 171:3a7713b1edbc 274 /* Literal set to maximum value (refer to device datasheet, */
AnnaBridge 171:3a7713b1edbc 275 /* parameter "tSTART"). */
AnnaBridge 171:3a7713b1edbc 276 /* Unit: us */
AnnaBridge 171:3a7713b1edbc 277 #define LL_COMP_DELAY_STARTUP_US (25U) /*!< Delay for COMP startup time */
AnnaBridge 171:3a7713b1edbc 278
AnnaBridge 171:3a7713b1edbc 279
AnnaBridge 171:3a7713b1edbc 280 /**
AnnaBridge 171:3a7713b1edbc 281 * @}
AnnaBridge 171:3a7713b1edbc 282 */
AnnaBridge 171:3a7713b1edbc 283
AnnaBridge 171:3a7713b1edbc 284 /**
AnnaBridge 171:3a7713b1edbc 285 * @}
AnnaBridge 171:3a7713b1edbc 286 */
AnnaBridge 171:3a7713b1edbc 287
AnnaBridge 171:3a7713b1edbc 288 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 289 /** @defgroup COMP_LL_Exported_Macros COMP Exported Macros
AnnaBridge 171:3a7713b1edbc 290 * @{
AnnaBridge 171:3a7713b1edbc 291 */
AnnaBridge 171:3a7713b1edbc 292 /** @defgroup COMP_LL_EM_WRITE_READ Common write and read registers macro
AnnaBridge 171:3a7713b1edbc 293 * @{
AnnaBridge 171:3a7713b1edbc 294 */
AnnaBridge 171:3a7713b1edbc 295
AnnaBridge 171:3a7713b1edbc 296 /**
AnnaBridge 171:3a7713b1edbc 297 * @brief Write a value in COMP register
AnnaBridge 171:3a7713b1edbc 298 * @param __INSTANCE__ comparator instance
AnnaBridge 171:3a7713b1edbc 299 * @param __REG__ Register to be written
AnnaBridge 171:3a7713b1edbc 300 * @param __VALUE__ Value to be written in the register
AnnaBridge 171:3a7713b1edbc 301 * @retval None
AnnaBridge 171:3a7713b1edbc 302 */
AnnaBridge 171:3a7713b1edbc 303 #define LL_COMP_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 171:3a7713b1edbc 304
AnnaBridge 171:3a7713b1edbc 305 /**
AnnaBridge 171:3a7713b1edbc 306 * @brief Read a value in COMP register
AnnaBridge 171:3a7713b1edbc 307 * @param __INSTANCE__ comparator instance
AnnaBridge 171:3a7713b1edbc 308 * @param __REG__ Register to be read
AnnaBridge 171:3a7713b1edbc 309 * @retval Register value
AnnaBridge 171:3a7713b1edbc 310 */
AnnaBridge 171:3a7713b1edbc 311 #define LL_COMP_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 171:3a7713b1edbc 312 /**
AnnaBridge 171:3a7713b1edbc 313 * @}
AnnaBridge 171:3a7713b1edbc 314 */
AnnaBridge 171:3a7713b1edbc 315
AnnaBridge 171:3a7713b1edbc 316 /** @defgroup COMP_LL_EM_HELPER_MACRO COMP helper macro
AnnaBridge 171:3a7713b1edbc 317 * @{
AnnaBridge 171:3a7713b1edbc 318 */
AnnaBridge 171:3a7713b1edbc 319
AnnaBridge 171:3a7713b1edbc 320 /**
AnnaBridge 171:3a7713b1edbc 321 * @brief Helper macro to select the COMP common instance
AnnaBridge 171:3a7713b1edbc 322 * to which is belonging the selected COMP instance.
AnnaBridge 171:3a7713b1edbc 323 * @note COMP common register instance can be used to
AnnaBridge 171:3a7713b1edbc 324 * set parameters common to several COMP instances.
AnnaBridge 171:3a7713b1edbc 325 * Refer to functions having argument "COMPxy_COMMON" as parameter.
AnnaBridge 171:3a7713b1edbc 326 * @param __COMPx__ COMP instance
AnnaBridge 171:3a7713b1edbc 327 * @retval COMP common instance or value "0" if there is no COMP common instance.
AnnaBridge 171:3a7713b1edbc 328 */
AnnaBridge 171:3a7713b1edbc 329 #define __LL_COMP_COMMON_INSTANCE(__COMPx__) \
AnnaBridge 171:3a7713b1edbc 330 (COMP12_COMMON)
AnnaBridge 171:3a7713b1edbc 331
AnnaBridge 171:3a7713b1edbc 332 /**
AnnaBridge 171:3a7713b1edbc 333 * @}
AnnaBridge 171:3a7713b1edbc 334 */
AnnaBridge 171:3a7713b1edbc 335
AnnaBridge 171:3a7713b1edbc 336 /**
AnnaBridge 171:3a7713b1edbc 337 * @}
AnnaBridge 171:3a7713b1edbc 338 */
AnnaBridge 171:3a7713b1edbc 339
AnnaBridge 171:3a7713b1edbc 340 /* Exported functions --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 341 /** @defgroup COMP_LL_Exported_Functions COMP Exported Functions
AnnaBridge 171:3a7713b1edbc 342 * @{
AnnaBridge 171:3a7713b1edbc 343 */
AnnaBridge 171:3a7713b1edbc 344
AnnaBridge 171:3a7713b1edbc 345 /** @defgroup COMP_LL_EF_Configuration_comparator_common Configuration of COMP hierarchical scope: common to several COMP instances
AnnaBridge 171:3a7713b1edbc 346 * @{
AnnaBridge 171:3a7713b1edbc 347 */
AnnaBridge 171:3a7713b1edbc 348
AnnaBridge 171:3a7713b1edbc 349 /**
AnnaBridge 171:3a7713b1edbc 350 * @brief Set window mode of a pair of comparators instances
AnnaBridge 171:3a7713b1edbc 351 * (2 consecutive COMP instances odd and even COMP<x> and COMP<x+1>).
AnnaBridge 171:3a7713b1edbc 352 * @rmtoll CSR WNDWE LL_COMP_SetCommonWindowMode
AnnaBridge 171:3a7713b1edbc 353 * @param COMPxy_COMMON Comparator common instance
AnnaBridge 171:3a7713b1edbc 354 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_COMP_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 355 * @param WindowMode This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 356 * @arg @ref LL_COMP_WINDOWMODE_DISABLE
AnnaBridge 171:3a7713b1edbc 357 * @arg @ref LL_COMP_WINDOWMODE_COMP2_INPUT_PLUS_COMMON
AnnaBridge 171:3a7713b1edbc 358 * @retval None
AnnaBridge 171:3a7713b1edbc 359 */
AnnaBridge 171:3a7713b1edbc 360 __STATIC_INLINE void LL_COMP_SetCommonWindowMode(COMP_Common_TypeDef *COMPxy_COMMON, uint32_t WindowMode)
AnnaBridge 171:3a7713b1edbc 361 {
AnnaBridge 171:3a7713b1edbc 362 MODIFY_REG(COMPxy_COMMON->CSR, COMP_CSR_WNDWE, WindowMode);
AnnaBridge 171:3a7713b1edbc 363 }
AnnaBridge 171:3a7713b1edbc 364
AnnaBridge 171:3a7713b1edbc 365 /**
AnnaBridge 171:3a7713b1edbc 366 * @brief Get window mode of a pair of comparators instances
AnnaBridge 171:3a7713b1edbc 367 * (2 consecutive COMP instances odd and even COMP<x> and COMP<x+1>).
AnnaBridge 171:3a7713b1edbc 368 * @rmtoll CSR WNDWE LL_COMP_GetCommonWindowMode
AnnaBridge 171:3a7713b1edbc 369 * @param COMPxy_COMMON Comparator common instance
AnnaBridge 171:3a7713b1edbc 370 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_COMP_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 371 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 372 * @arg @ref LL_COMP_WINDOWMODE_DISABLE
AnnaBridge 171:3a7713b1edbc 373 * @arg @ref LL_COMP_WINDOWMODE_COMP2_INPUT_PLUS_COMMON
AnnaBridge 171:3a7713b1edbc 374 */
AnnaBridge 171:3a7713b1edbc 375 __STATIC_INLINE uint32_t LL_COMP_GetCommonWindowMode(COMP_Common_TypeDef *COMPxy_COMMON)
AnnaBridge 171:3a7713b1edbc 376 {
AnnaBridge 171:3a7713b1edbc 377 return (uint32_t)(READ_BIT(COMPxy_COMMON->CSR, COMP_CSR_WNDWE));
AnnaBridge 171:3a7713b1edbc 378 }
AnnaBridge 171:3a7713b1edbc 379
AnnaBridge 171:3a7713b1edbc 380 /**
AnnaBridge 171:3a7713b1edbc 381 * @}
AnnaBridge 171:3a7713b1edbc 382 */
AnnaBridge 171:3a7713b1edbc 383
AnnaBridge 171:3a7713b1edbc 384 /** @defgroup COMP_LL_EF_Configuration_comparator_modes Configuration of comparator modes
AnnaBridge 171:3a7713b1edbc 385 * @{
AnnaBridge 171:3a7713b1edbc 386 */
AnnaBridge 171:3a7713b1edbc 387
AnnaBridge 171:3a7713b1edbc 388 /**
AnnaBridge 171:3a7713b1edbc 389 * @brief Set comparator instance operating mode to adjust power and speed.
AnnaBridge 171:3a7713b1edbc 390 * @rmtoll COMP2_CSR SPEED LL_COMP_SetPowerMode
AnnaBridge 171:3a7713b1edbc 391 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 392 * @param PowerMode This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 393 * @arg @ref LL_COMP_POWERMODE_MEDIUMSPEED (1)
AnnaBridge 171:3a7713b1edbc 394 * @arg @ref LL_COMP_POWERMODE_ULTRALOWPOWER (1)
AnnaBridge 171:3a7713b1edbc 395 *
AnnaBridge 171:3a7713b1edbc 396 * (1) Available only on COMP instance: COMP2.
AnnaBridge 171:3a7713b1edbc 397 * @retval None
AnnaBridge 171:3a7713b1edbc 398 */
AnnaBridge 171:3a7713b1edbc 399 __STATIC_INLINE void LL_COMP_SetPowerMode(COMP_TypeDef *COMPx, uint32_t PowerMode)
AnnaBridge 171:3a7713b1edbc 400 {
AnnaBridge 171:3a7713b1edbc 401 MODIFY_REG(COMP->CSR, COMP_CSR_SPEED, PowerMode);
AnnaBridge 171:3a7713b1edbc 402 }
AnnaBridge 171:3a7713b1edbc 403
AnnaBridge 171:3a7713b1edbc 404 /**
AnnaBridge 171:3a7713b1edbc 405 * @brief Get comparator instance operating mode to adjust power and speed.
AnnaBridge 171:3a7713b1edbc 406 * @rmtoll COMP2_CSR SPEED LL_COMP_GetPowerMode
AnnaBridge 171:3a7713b1edbc 407 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 408 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 409 * @arg @ref LL_COMP_POWERMODE_MEDIUMSPEED (1)
AnnaBridge 171:3a7713b1edbc 410 * @arg @ref LL_COMP_POWERMODE_ULTRALOWPOWER (1)
AnnaBridge 171:3a7713b1edbc 411 *
AnnaBridge 171:3a7713b1edbc 412 * (1) Available only on COMP instance: COMP2.
AnnaBridge 171:3a7713b1edbc 413 */
AnnaBridge 171:3a7713b1edbc 414 __STATIC_INLINE uint32_t LL_COMP_GetPowerMode(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 415 {
AnnaBridge 171:3a7713b1edbc 416 return (uint32_t)(READ_BIT(COMP->CSR, COMP_CSR_SPEED));
AnnaBridge 171:3a7713b1edbc 417 }
AnnaBridge 171:3a7713b1edbc 418
AnnaBridge 171:3a7713b1edbc 419 /**
AnnaBridge 171:3a7713b1edbc 420 * @}
AnnaBridge 171:3a7713b1edbc 421 */
AnnaBridge 171:3a7713b1edbc 422
AnnaBridge 171:3a7713b1edbc 423 /** @defgroup COMP_LL_EF_Configuration_comparator_inputs Configuration of comparator inputs
AnnaBridge 171:3a7713b1edbc 424 * @{
AnnaBridge 171:3a7713b1edbc 425 */
AnnaBridge 171:3a7713b1edbc 426
AnnaBridge 171:3a7713b1edbc 427 /**
AnnaBridge 171:3a7713b1edbc 428 * @brief Set comparator input plus (non-inverting).
AnnaBridge 171:3a7713b1edbc 429 * @note In case of comparator input selected to be connected to IO:
AnnaBridge 171:3a7713b1edbc 430 * GPIO pins are specific to each comparator instance.
AnnaBridge 171:3a7713b1edbc 431 * Refer to description of parameters or to reference manual.
AnnaBridge 171:3a7713b1edbc 432 * @rmtoll RI RI_ASCR1_CH LL_COMP_SetInputPlus\n
AnnaBridge 171:3a7713b1edbc 433 * RI RI_ASCR2_GR6 LL_COMP_SetInputPlus
AnnaBridge 171:3a7713b1edbc 434 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 435 * @param InputPlus This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 436 * @arg @ref LL_COMP_INPUT_PLUS_NONE
AnnaBridge 171:3a7713b1edbc 437 * @arg @ref LL_COMP_INPUT_PLUS_IO1 (2)
AnnaBridge 171:3a7713b1edbc 438 * @arg @ref LL_COMP_INPUT_PLUS_IO2 (2)
AnnaBridge 171:3a7713b1edbc 439 * @arg @ref LL_COMP_INPUT_PLUS_IO3 (2)(5)
AnnaBridge 171:3a7713b1edbc 440 * @arg @ref LL_COMP_INPUT_PLUS_IO4 (2)(5)
AnnaBridge 171:3a7713b1edbc 441 * @arg @ref LL_COMP_INPUT_PLUS_IO5 (1)
AnnaBridge 171:3a7713b1edbc 442 * @arg @ref LL_COMP_INPUT_PLUS_IO6 (1)
AnnaBridge 171:3a7713b1edbc 443 * @arg @ref LL_COMP_INPUT_PLUS_IO7 (1)
AnnaBridge 171:3a7713b1edbc 444 * @arg @ref LL_COMP_INPUT_PLUS_IO8 (1)
AnnaBridge 171:3a7713b1edbc 445 * @arg @ref LL_COMP_INPUT_PLUS_IO9 (1)
AnnaBridge 171:3a7713b1edbc 446 * @arg @ref LL_COMP_INPUT_PLUS_IO10 (1)
AnnaBridge 171:3a7713b1edbc 447 * @arg @ref LL_COMP_INPUT_PLUS_IO11 (1)
AnnaBridge 171:3a7713b1edbc 448 * @arg @ref LL_COMP_INPUT_PLUS_IO12 (1)
AnnaBridge 171:3a7713b1edbc 449 * @arg @ref LL_COMP_INPUT_PLUS_IO13 (1)
AnnaBridge 171:3a7713b1edbc 450 * @arg @ref LL_COMP_INPUT_PLUS_IO14 (1)
AnnaBridge 171:3a7713b1edbc 451 * @arg @ref LL_COMP_INPUT_PLUS_IO15 (1)
AnnaBridge 171:3a7713b1edbc 452 * @arg @ref LL_COMP_INPUT_PLUS_IO16 (1)
AnnaBridge 171:3a7713b1edbc 453 * @arg @ref LL_COMP_INPUT_PLUS_IO17 (1)
AnnaBridge 171:3a7713b1edbc 454 * @arg @ref LL_COMP_INPUT_PLUS_IO18 (1)
AnnaBridge 171:3a7713b1edbc 455 * @arg @ref LL_COMP_INPUT_PLUS_IO19 (1)
AnnaBridge 171:3a7713b1edbc 456 * @arg @ref LL_COMP_INPUT_PLUS_IO20 (1)
AnnaBridge 171:3a7713b1edbc 457 * @arg @ref LL_COMP_INPUT_PLUS_IO21 (1)
AnnaBridge 171:3a7713b1edbc 458 * @arg @ref LL_COMP_INPUT_PLUS_IO22 (1)
AnnaBridge 171:3a7713b1edbc 459 * @arg @ref LL_COMP_INPUT_PLUS_IO23 (1)
AnnaBridge 171:3a7713b1edbc 460 * @arg @ref LL_COMP_INPUT_PLUS_IO24 (1)
AnnaBridge 171:3a7713b1edbc 461 * @arg @ref LL_COMP_INPUT_PLUS_IO25 (1)
AnnaBridge 171:3a7713b1edbc 462 * @arg @ref LL_COMP_INPUT_PLUS_IO26 (1)
AnnaBridge 171:3a7713b1edbc 463 * @arg @ref LL_COMP_INPUT_PLUS_IO27 (1)
AnnaBridge 171:3a7713b1edbc 464 * @arg @ref LL_COMP_INPUT_PLUS_IO28 (1)
AnnaBridge 171:3a7713b1edbc 465 * @arg @ref LL_COMP_INPUT_PLUS_IO29 (1)(4)
AnnaBridge 171:3a7713b1edbc 466 * @arg @ref LL_COMP_INPUT_PLUS_IO30 (1)(4)
AnnaBridge 171:3a7713b1edbc 467 * @arg @ref LL_COMP_INPUT_PLUS_IO31 (1)(4)
AnnaBridge 171:3a7713b1edbc 468 * @arg @ref LL_COMP_INPUT_PLUS_IO32 (1)(4)
AnnaBridge 171:3a7713b1edbc 469 * @arg @ref LL_COMP_INPUT_PLUS_IO33 (1)(4)
AnnaBridge 171:3a7713b1edbc 470 * @arg @ref LL_COMP_INPUT_PLUS_OPAMP1 (1)(3)
AnnaBridge 171:3a7713b1edbc 471 * @arg @ref LL_COMP_INPUT_PLUS_OPAMP2 (1)(3)
AnnaBridge 171:3a7713b1edbc 472 * @arg @ref LL_COMP_INPUT_PLUS_OPAMP3 (1)(4)
AnnaBridge 171:3a7713b1edbc 473 *
AnnaBridge 171:3a7713b1edbc 474 * (1) Available only on COMP instance: COMP1. \n
AnnaBridge 171:3a7713b1edbc 475 * (2) Available only on COMP instance: COMP2. \n
AnnaBridge 171:3a7713b1edbc 476 * (3) Available on devices: STM32L100xB, STM32L151xB, STM32L152xB, STM32L100xBA, STM32L151xBA, STM32L152xBA, STM32L151xCA, STM32L151xD, STM32L152xCA, STM32L152xD, STM32L162xCA, STM32L162xD \n
AnnaBridge 171:3a7713b1edbc 477 * (4) Available on devices: STM32L151xCA, STM32L151xD, STM32L152xCA, STM32L152xD, STM32L162xCA, STM32L162xD \n
AnnaBridge 171:3a7713b1edbc 478 * (5) Available on devices: STM32L100xC, STM32L151xC, STM32L152xC, STM32L162xC, STM32L151xCA, STM32L151xD, STM32L152xCA, STM32L152xD, STM32L162xCA, STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX, STM32L152xE, STM32L152xDX, STM32L162xE, STM32L162xDX
AnnaBridge 171:3a7713b1edbc 479 * @retval None
AnnaBridge 171:3a7713b1edbc 480 */
AnnaBridge 171:3a7713b1edbc 481 __STATIC_INLINE void LL_COMP_SetInputPlus(COMP_TypeDef *COMPx, uint32_t InputPlus)
AnnaBridge 171:3a7713b1edbc 482 {
AnnaBridge 171:3a7713b1edbc 483 /* Set switch in routing interface (RI) register ASCR1 or ASCR2 */
AnnaBridge 171:3a7713b1edbc 484 /* Note: If COMP instance COMP1 is selected, this function performs */
AnnaBridge 171:3a7713b1edbc 485 /* necessary actions on routing interface: */
AnnaBridge 171:3a7713b1edbc 486 /* - close switch netween comparator 1 and switch matrix */
AnnaBridge 171:3a7713b1edbc 487 /* (RI_ASCR1_VCOMP) */
AnnaBridge 171:3a7713b1edbc 488 /* - enable IO switch control mode (RI_ASCR1_SCM) */
AnnaBridge 171:3a7713b1edbc 489 /* If ADC needs to be used afterwards, disable IO switch control */
AnnaBridge 171:3a7713b1edbc 490 /* mode using function @ref LL_RI_DisableSwitchControlMode(). */
AnnaBridge 171:3a7713b1edbc 491 register uint32_t *preg = ((uint32_t *)((uint32_t) ((uint32_t)(&(RI->ASCR1)) + ((__COMP_IS_INSTANCE_EVEN(COMPx)) << 2U))));
AnnaBridge 171:3a7713b1edbc 492
AnnaBridge 171:3a7713b1edbc 493 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 494 (RI_ASCR1_CH * __COMP_IS_INSTANCE_ODD(COMPx)) | (RI_ASCR2_GR6 * __COMP_IS_INSTANCE_EVEN(COMPx)),
AnnaBridge 171:3a7713b1edbc 495 InputPlus | ((RI_ASCR1_VCOMP | RI_ASCR1_SCM) * __COMP_IS_INSTANCE_ODD(COMPx)));
AnnaBridge 171:3a7713b1edbc 496 }
AnnaBridge 171:3a7713b1edbc 497
AnnaBridge 171:3a7713b1edbc 498 /**
AnnaBridge 171:3a7713b1edbc 499 * @brief Get comparator input plus (non-inverting).
AnnaBridge 171:3a7713b1edbc 500 * @note In case of comparator input selected to be connected to IO:
AnnaBridge 171:3a7713b1edbc 501 * GPIO pins are specific to each comparator instance.
AnnaBridge 171:3a7713b1edbc 502 * Refer to description of parameters or to reference manual.
AnnaBridge 171:3a7713b1edbc 503 * @rmtoll RI RI_ASCR1_CH LL_COMP_GetInputPlus\n
AnnaBridge 171:3a7713b1edbc 504 * RI RI_ASCR2_GR6 LL_COMP_GetInputPlus
AnnaBridge 171:3a7713b1edbc 505 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 506 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 507 * @arg @ref LL_COMP_INPUT_PLUS_NONE
AnnaBridge 171:3a7713b1edbc 508 * @arg @ref LL_COMP_INPUT_PLUS_IO1 (2)
AnnaBridge 171:3a7713b1edbc 509 * @arg @ref LL_COMP_INPUT_PLUS_IO2 (2)
AnnaBridge 171:3a7713b1edbc 510 * @arg @ref LL_COMP_INPUT_PLUS_IO3 (2)(5)
AnnaBridge 171:3a7713b1edbc 511 * @arg @ref LL_COMP_INPUT_PLUS_IO4 (2)(5)
AnnaBridge 171:3a7713b1edbc 512 * @arg @ref LL_COMP_INPUT_PLUS_IO5 (1)
AnnaBridge 171:3a7713b1edbc 513 * @arg @ref LL_COMP_INPUT_PLUS_IO6 (1)
AnnaBridge 171:3a7713b1edbc 514 * @arg @ref LL_COMP_INPUT_PLUS_IO7 (1)
AnnaBridge 171:3a7713b1edbc 515 * @arg @ref LL_COMP_INPUT_PLUS_IO8 (1)
AnnaBridge 171:3a7713b1edbc 516 * @arg @ref LL_COMP_INPUT_PLUS_IO9 (1)
AnnaBridge 171:3a7713b1edbc 517 * @arg @ref LL_COMP_INPUT_PLUS_IO10 (1)
AnnaBridge 171:3a7713b1edbc 518 * @arg @ref LL_COMP_INPUT_PLUS_IO11 (1)
AnnaBridge 171:3a7713b1edbc 519 * @arg @ref LL_COMP_INPUT_PLUS_IO12 (1)
AnnaBridge 171:3a7713b1edbc 520 * @arg @ref LL_COMP_INPUT_PLUS_IO13 (1)
AnnaBridge 171:3a7713b1edbc 521 * @arg @ref LL_COMP_INPUT_PLUS_IO14 (1)
AnnaBridge 171:3a7713b1edbc 522 * @arg @ref LL_COMP_INPUT_PLUS_IO15 (1)
AnnaBridge 171:3a7713b1edbc 523 * @arg @ref LL_COMP_INPUT_PLUS_IO16 (1)
AnnaBridge 171:3a7713b1edbc 524 * @arg @ref LL_COMP_INPUT_PLUS_IO17 (1)
AnnaBridge 171:3a7713b1edbc 525 * @arg @ref LL_COMP_INPUT_PLUS_IO18 (1)
AnnaBridge 171:3a7713b1edbc 526 * @arg @ref LL_COMP_INPUT_PLUS_IO19 (1)
AnnaBridge 171:3a7713b1edbc 527 * @arg @ref LL_COMP_INPUT_PLUS_IO20 (1)
AnnaBridge 171:3a7713b1edbc 528 * @arg @ref LL_COMP_INPUT_PLUS_IO21 (1)
AnnaBridge 171:3a7713b1edbc 529 * @arg @ref LL_COMP_INPUT_PLUS_IO22 (1)
AnnaBridge 171:3a7713b1edbc 530 * @arg @ref LL_COMP_INPUT_PLUS_IO23 (1)
AnnaBridge 171:3a7713b1edbc 531 * @arg @ref LL_COMP_INPUT_PLUS_IO24 (1)
AnnaBridge 171:3a7713b1edbc 532 * @arg @ref LL_COMP_INPUT_PLUS_IO25 (1)
AnnaBridge 171:3a7713b1edbc 533 * @arg @ref LL_COMP_INPUT_PLUS_IO26 (1)
AnnaBridge 171:3a7713b1edbc 534 * @arg @ref LL_COMP_INPUT_PLUS_IO27 (1)
AnnaBridge 171:3a7713b1edbc 535 * @arg @ref LL_COMP_INPUT_PLUS_IO28 (1)
AnnaBridge 171:3a7713b1edbc 536 * @arg @ref LL_COMP_INPUT_PLUS_IO29 (1)(4)
AnnaBridge 171:3a7713b1edbc 537 * @arg @ref LL_COMP_INPUT_PLUS_IO30 (1)(4)
AnnaBridge 171:3a7713b1edbc 538 * @arg @ref LL_COMP_INPUT_PLUS_IO31 (1)(4)
AnnaBridge 171:3a7713b1edbc 539 * @arg @ref LL_COMP_INPUT_PLUS_IO32 (1)(4)
AnnaBridge 171:3a7713b1edbc 540 * @arg @ref LL_COMP_INPUT_PLUS_IO33 (1)(4)
AnnaBridge 171:3a7713b1edbc 541 * @arg @ref LL_COMP_INPUT_PLUS_OPAMP1 (1)(3)
AnnaBridge 171:3a7713b1edbc 542 * @arg @ref LL_COMP_INPUT_PLUS_OPAMP2 (1)(3)
AnnaBridge 171:3a7713b1edbc 543 * @arg @ref LL_COMP_INPUT_PLUS_OPAMP3 (1)(4)
AnnaBridge 171:3a7713b1edbc 544 *
AnnaBridge 171:3a7713b1edbc 545 * (1) Available only on COMP instance: COMP1. \n
AnnaBridge 171:3a7713b1edbc 546 * (2) Available only on COMP instance: COMP2. \n
AnnaBridge 171:3a7713b1edbc 547 * (3) Available on devices: STM32L100xB, STM32L151xB, STM32L152xB, STM32L100xBA, STM32L151xBA, STM32L152xBA, STM32L151xCA, STM32L151xD, STM32L152xCA, STM32L152xD, STM32L162xCA, STM32L162xD \n
AnnaBridge 171:3a7713b1edbc 548 * (4) Available on devices: STM32L151xCA, STM32L151xD, STM32L152xCA, STM32L152xD, STM32L162xCA, STM32L162xD \n
AnnaBridge 171:3a7713b1edbc 549 * (5) Available on devices: STM32L100xC, STM32L151xC, STM32L152xC, STM32L162xC, STM32L151xCA, STM32L151xD, STM32L152xCA, STM32L152xD, STM32L162xCA, STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX, STM32L152xE, STM32L152xDX, STM32L162xE, STM32L162xDX
AnnaBridge 171:3a7713b1edbc 550 */
AnnaBridge 171:3a7713b1edbc 551 __STATIC_INLINE uint32_t LL_COMP_GetInputPlus(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 552 {
AnnaBridge 171:3a7713b1edbc 553 /* Get switch state in routing interface (RI) register ASCR1 or ASCR2 */
AnnaBridge 171:3a7713b1edbc 554 register uint32_t *preg = ((uint32_t *)((uint32_t) ((uint32_t)(&(RI->ASCR1)) + ((__COMP_IS_INSTANCE_EVEN(COMPx)) << 2U))));
AnnaBridge 171:3a7713b1edbc 555
AnnaBridge 171:3a7713b1edbc 556 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 557 (RI_ASCR1_CH * __COMP_IS_INSTANCE_ODD(COMPx)) | (RI_ASCR2_GR6 * __COMP_IS_INSTANCE_EVEN(COMPx))));
AnnaBridge 171:3a7713b1edbc 558 }
AnnaBridge 171:3a7713b1edbc 559
AnnaBridge 171:3a7713b1edbc 560 /**
AnnaBridge 171:3a7713b1edbc 561 * @brief Set comparator input minus (inverting).
AnnaBridge 171:3a7713b1edbc 562 * @note In case of comparator input selected to be connected to IO:
AnnaBridge 171:3a7713b1edbc 563 * GPIO pins are specific to each comparator instance.
AnnaBridge 171:3a7713b1edbc 564 * Refer to description of parameters or to reference manual.
AnnaBridge 171:3a7713b1edbc 565 * @rmtoll CSR COMP_CSR_INSEL LL_COMP_SetInputMinus
AnnaBridge 171:3a7713b1edbc 566 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 567 * @param InputMinus This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 568 * @arg @ref LL_COMP_INPUT_MINUS_1_4VREFINT (1)
AnnaBridge 171:3a7713b1edbc 569 * @arg @ref LL_COMP_INPUT_MINUS_1_2VREFINT (1)
AnnaBridge 171:3a7713b1edbc 570 * @arg @ref LL_COMP_INPUT_MINUS_3_4VREFINT (1)
AnnaBridge 171:3a7713b1edbc 571 * @arg @ref LL_COMP_INPUT_MINUS_VREFINT
AnnaBridge 171:3a7713b1edbc 572 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH1 (1)
AnnaBridge 171:3a7713b1edbc 573 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH2 (1)
AnnaBridge 171:3a7713b1edbc 574 * @arg @ref LL_COMP_INPUT_MINUS_IO1 (1)
AnnaBridge 171:3a7713b1edbc 575 *
AnnaBridge 171:3a7713b1edbc 576 * (1) Available only on COMP instance: COMP2.
AnnaBridge 171:3a7713b1edbc 577 * @retval None
AnnaBridge 171:3a7713b1edbc 578 */
AnnaBridge 171:3a7713b1edbc 579 __STATIC_INLINE void LL_COMP_SetInputMinus(COMP_TypeDef *COMPx, uint32_t InputMinus)
AnnaBridge 171:3a7713b1edbc 580 {
AnnaBridge 171:3a7713b1edbc 581 /* On this STM32 serie, only COMP instance COMP1 input minus is fixed to */
AnnaBridge 171:3a7713b1edbc 582 /* VrefInt. Check of comparator instance is implemented to modify register */
AnnaBridge 171:3a7713b1edbc 583 /* only if COMP2 is selected. */
AnnaBridge 171:3a7713b1edbc 584 MODIFY_REG(COMP->CSR,
AnnaBridge 171:3a7713b1edbc 585 COMP_CSR_INSEL * __COMP_IS_INSTANCE_EVEN(COMPx),
AnnaBridge 171:3a7713b1edbc 586 InputMinus * __COMP_IS_INSTANCE_EVEN(COMPx));
AnnaBridge 171:3a7713b1edbc 587 }
AnnaBridge 171:3a7713b1edbc 588
AnnaBridge 171:3a7713b1edbc 589 /**
AnnaBridge 171:3a7713b1edbc 590 * @brief Get comparator input minus (inverting).
AnnaBridge 171:3a7713b1edbc 591 * @note In case of comparator input selected to be connected to IO:
AnnaBridge 171:3a7713b1edbc 592 * GPIO pins are specific to each comparator instance.
AnnaBridge 171:3a7713b1edbc 593 * Refer to description of parameters or to reference manual.
AnnaBridge 171:3a7713b1edbc 594 * @rmtoll CSR COMP_CSR_INSEL LL_COMP_SetInputMinus
AnnaBridge 171:3a7713b1edbc 595 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 596 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 597 * @arg @ref LL_COMP_INPUT_MINUS_1_4VREFINT (1)
AnnaBridge 171:3a7713b1edbc 598 * @arg @ref LL_COMP_INPUT_MINUS_1_2VREFINT (1)
AnnaBridge 171:3a7713b1edbc 599 * @arg @ref LL_COMP_INPUT_MINUS_3_4VREFINT (1)
AnnaBridge 171:3a7713b1edbc 600 * @arg @ref LL_COMP_INPUT_MINUS_VREFINT
AnnaBridge 171:3a7713b1edbc 601 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH1 (1)
AnnaBridge 171:3a7713b1edbc 602 * @arg @ref LL_COMP_INPUT_MINUS_DAC1_CH2 (1)
AnnaBridge 171:3a7713b1edbc 603 * @arg @ref LL_COMP_INPUT_MINUS_IO1 (1)
AnnaBridge 171:3a7713b1edbc 604 *
AnnaBridge 171:3a7713b1edbc 605 * (1) Available only on COMP instance: COMP2.
AnnaBridge 171:3a7713b1edbc 606 */
AnnaBridge 171:3a7713b1edbc 607 __STATIC_INLINE uint32_t LL_COMP_GetInputMinus(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 608 {
AnnaBridge 171:3a7713b1edbc 609 /* On this STM32 serie, only COMP instance COMP1 input minus is fixed to */
AnnaBridge 171:3a7713b1edbc 610 /* VrefInt. Check of comparator instance is implemented to return */
AnnaBridge 171:3a7713b1edbc 611 /* the comparator input plus depending on COMP instance selected. */
AnnaBridge 171:3a7713b1edbc 612 return (uint32_t)((READ_BIT(COMP->CSR, COMP_CSR_INSEL) * __COMP_IS_INSTANCE_EVEN(COMPx))
AnnaBridge 171:3a7713b1edbc 613 | (LL_COMP_INPUT_MINUS_VREFINT * __COMP_IS_INSTANCE_ODD(COMPx)));
AnnaBridge 171:3a7713b1edbc 614 }
AnnaBridge 171:3a7713b1edbc 615
AnnaBridge 171:3a7713b1edbc 616 /**
AnnaBridge 171:3a7713b1edbc 617 * @brief Set comparator input pulling resistor.
AnnaBridge 171:3a7713b1edbc 618 * @rmtoll CSR 10KPU LL_COMP_SetInputPullingResistor\n
AnnaBridge 171:3a7713b1edbc 619 * CSR 400KPU LL_COMP_SetInputPullingResistor\n
AnnaBridge 171:3a7713b1edbc 620 * CSR 10KPD LL_COMP_SetInputPullingResistor\n
AnnaBridge 171:3a7713b1edbc 621 * CSR 400KPD LL_COMP_SetInputPullingResistor
AnnaBridge 171:3a7713b1edbc 622 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 623 * @param InputPullingResistor This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 624 * @arg @ref LL_COMP_INPUT_MINUS_PULL_NO
AnnaBridge 171:3a7713b1edbc 625 * @arg @ref LL_COMP_INPUT_MINUS_PULL_UP_10K (1)
AnnaBridge 171:3a7713b1edbc 626 * @arg @ref LL_COMP_INPUT_MINUS_PULL_UP_400K (1)
AnnaBridge 171:3a7713b1edbc 627 * @arg @ref LL_COMP_INPUT_MINUS_PULL_DOWN_10K (1)
AnnaBridge 171:3a7713b1edbc 628 * @arg @ref LL_COMP_INPUT_MINUS_PULL_DOWN_400K (1)
AnnaBridge 171:3a7713b1edbc 629 *
AnnaBridge 171:3a7713b1edbc 630 * (1) Available only on COMP instance: COMP1.
AnnaBridge 171:3a7713b1edbc 631 * @retval None
AnnaBridge 171:3a7713b1edbc 632 */
AnnaBridge 171:3a7713b1edbc 633 __STATIC_INLINE void LL_COMP_SetInputPullingResistor(COMP_TypeDef *COMPx, uint32_t InputPullingResistor)
AnnaBridge 171:3a7713b1edbc 634 {
AnnaBridge 171:3a7713b1edbc 635 /* On this STM32 serie, only COMP instance COMP1 has input pulling */
AnnaBridge 171:3a7713b1edbc 636 /* resistor. Check of comparator instance is implemented to modify register */
AnnaBridge 171:3a7713b1edbc 637 /* only if COMP1 is selected. */
AnnaBridge 171:3a7713b1edbc 638 MODIFY_REG(COMP->CSR,
AnnaBridge 171:3a7713b1edbc 639 (COMP_CSR_10KPU | COMP_CSR_400KPU | COMP_CSR_10KPD | COMP_CSR_400KPD) * __COMP_IS_INSTANCE_ODD(COMPx),
AnnaBridge 171:3a7713b1edbc 640 InputPullingResistor * __COMP_IS_INSTANCE_ODD(COMPx));
AnnaBridge 171:3a7713b1edbc 641 }
AnnaBridge 171:3a7713b1edbc 642
AnnaBridge 171:3a7713b1edbc 643 /**
AnnaBridge 171:3a7713b1edbc 644 * @brief Get comparator input pulling resistor.
AnnaBridge 171:3a7713b1edbc 645 * @rmtoll CSR 10KPU LL_COMP_SetInputPullingResistor\n
AnnaBridge 171:3a7713b1edbc 646 * CSR 400KPU LL_COMP_SetInputPullingResistor\n
AnnaBridge 171:3a7713b1edbc 647 * CSR 10KPD LL_COMP_SetInputPullingResistor\n
AnnaBridge 171:3a7713b1edbc 648 * CSR 400KPD LL_COMP_SetInputPullingResistor
AnnaBridge 171:3a7713b1edbc 649 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 650 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 651 * @arg @ref LL_COMP_INPUT_MINUS_PULL_NO
AnnaBridge 171:3a7713b1edbc 652 * @arg @ref LL_COMP_INPUT_MINUS_PULL_UP_10K (1)
AnnaBridge 171:3a7713b1edbc 653 * @arg @ref LL_COMP_INPUT_MINUS_PULL_UP_400K (1)
AnnaBridge 171:3a7713b1edbc 654 * @arg @ref LL_COMP_INPUT_MINUS_PULL_DOWN_10K (1)
AnnaBridge 171:3a7713b1edbc 655 * @arg @ref LL_COMP_INPUT_MINUS_PULL_DOWN_400K (1)
AnnaBridge 171:3a7713b1edbc 656 *
AnnaBridge 171:3a7713b1edbc 657 * (1) Available only on COMP instance: COMP1.
AnnaBridge 171:3a7713b1edbc 658 */
AnnaBridge 171:3a7713b1edbc 659 __STATIC_INLINE uint32_t LL_COMP_GetInputPullingResistor(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 660 {
AnnaBridge 171:3a7713b1edbc 661 /* On this STM32 serie, only COMP instance COMP1 has input pulling */
AnnaBridge 171:3a7713b1edbc 662 /* resistor. Check of comparator instance is implemented to return */
AnnaBridge 171:3a7713b1edbc 663 /* the comparator input pulling resistor depending on COMP instance */
AnnaBridge 171:3a7713b1edbc 664 /* selected. */
AnnaBridge 171:3a7713b1edbc 665 /* On this STM32 serie, only COMP instance COMP1 input minus is fixed to */
AnnaBridge 171:3a7713b1edbc 666 /* VrefInt. Check of comparator instance is implemented to return */
AnnaBridge 171:3a7713b1edbc 667 /* the comparator input plus depending on COMP instance selected. */
AnnaBridge 171:3a7713b1edbc 668 return (uint32_t)((READ_BIT(COMP->CSR, (COMP_CSR_10KPU | COMP_CSR_400KPU | COMP_CSR_10KPD | COMP_CSR_400KPD)) * __COMP_IS_INSTANCE_ODD(COMPx))
AnnaBridge 171:3a7713b1edbc 669 | (LL_COMP_INPUT_MINUS_PULL_NO * __COMP_IS_INSTANCE_EVEN(COMPx)));
AnnaBridge 171:3a7713b1edbc 670 }
AnnaBridge 171:3a7713b1edbc 671
AnnaBridge 171:3a7713b1edbc 672 /**
AnnaBridge 171:3a7713b1edbc 673 * @}
AnnaBridge 171:3a7713b1edbc 674 */
AnnaBridge 171:3a7713b1edbc 675
AnnaBridge 171:3a7713b1edbc 676 /** @defgroup COMP_LL_EF_Configuration_comparator_output Configuration of comparator output
AnnaBridge 171:3a7713b1edbc 677 * @{
AnnaBridge 171:3a7713b1edbc 678 */
AnnaBridge 171:3a7713b1edbc 679
AnnaBridge 171:3a7713b1edbc 680 /**
AnnaBridge 171:3a7713b1edbc 681 * @brief Set comparator output selection.
AnnaBridge 171:3a7713b1edbc 682 * @note Availability of parameters of output selection to timer
AnnaBridge 171:3a7713b1edbc 683 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 684 * @rmtoll CSR OUTSEL LL_COMP_SetOutputSelection
AnnaBridge 171:3a7713b1edbc 685 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 686 * @param OutputSelection This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 687 * @arg @ref LL_COMP_OUTPUT_NONE
AnnaBridge 171:3a7713b1edbc 688 * @arg @ref LL_COMP_OUTPUT_TIM2_IC4 (1)(2)
AnnaBridge 171:3a7713b1edbc 689 * @arg @ref LL_COMP_OUTPUT_TIM2_OCREFCLR (1)(2)
AnnaBridge 171:3a7713b1edbc 690 * @arg @ref LL_COMP_OUTPUT_TIM3_IC4 (1)(2)
AnnaBridge 171:3a7713b1edbc 691 * @arg @ref LL_COMP_OUTPUT_TIM3_OCREFCLR (1)(2)
AnnaBridge 171:3a7713b1edbc 692 * @arg @ref LL_COMP_OUTPUT_TIM4_IC4 (1)(2)
AnnaBridge 171:3a7713b1edbc 693 * @arg @ref LL_COMP_OUTPUT_TIM4_OCREFCLR (1)(2)
AnnaBridge 171:3a7713b1edbc 694 * @arg @ref LL_COMP_OUTPUT_TIM10_IC1 (1)(2)
AnnaBridge 171:3a7713b1edbc 695 *
AnnaBridge 171:3a7713b1edbc 696 * (1) Parameter availability depending on timer availability
AnnaBridge 171:3a7713b1edbc 697 * on the selected device.
AnnaBridge 171:3a7713b1edbc 698 * (2) Available only on COMP instance: COMP2.
AnnaBridge 171:3a7713b1edbc 699 * @retval None
AnnaBridge 171:3a7713b1edbc 700 */
AnnaBridge 171:3a7713b1edbc 701 __STATIC_INLINE void LL_COMP_SetOutputSelection(COMP_TypeDef *COMPx, uint32_t OutputSelection)
AnnaBridge 171:3a7713b1edbc 702 {
AnnaBridge 171:3a7713b1edbc 703 /* On this STM32 serie, only COMP instance COMP2 has feature output */
AnnaBridge 171:3a7713b1edbc 704 /* selection. Check of comparator instance is implemented to modify register*/
AnnaBridge 171:3a7713b1edbc 705 /* only if COMP2 is selected. */
AnnaBridge 171:3a7713b1edbc 706 MODIFY_REG(COMP->CSR,
AnnaBridge 171:3a7713b1edbc 707 COMP_CSR_OUTSEL * __COMP_IS_INSTANCE_EVEN(COMPx),
AnnaBridge 171:3a7713b1edbc 708 OutputSelection * __COMP_IS_INSTANCE_EVEN(COMPx));
AnnaBridge 171:3a7713b1edbc 709 }
AnnaBridge 171:3a7713b1edbc 710
AnnaBridge 171:3a7713b1edbc 711 /**
AnnaBridge 171:3a7713b1edbc 712 * @brief Get comparator output selection.
AnnaBridge 171:3a7713b1edbc 713 * @note Availability of parameters of output selection to timer
AnnaBridge 171:3a7713b1edbc 714 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 715 * @rmtoll CSR OUTSEL LL_COMP_GetOutputSelection
AnnaBridge 171:3a7713b1edbc 716 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 717 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 718 * @arg @ref LL_COMP_OUTPUT_NONE
AnnaBridge 171:3a7713b1edbc 719 * @arg @ref LL_COMP_OUTPUT_TIM2_IC4 (1)(2)
AnnaBridge 171:3a7713b1edbc 720 * @arg @ref LL_COMP_OUTPUT_TIM2_OCREFCLR (1)(2)
AnnaBridge 171:3a7713b1edbc 721 * @arg @ref LL_COMP_OUTPUT_TIM3_IC4 (1)(2)
AnnaBridge 171:3a7713b1edbc 722 * @arg @ref LL_COMP_OUTPUT_TIM3_OCREFCLR (1)(2)
AnnaBridge 171:3a7713b1edbc 723 * @arg @ref LL_COMP_OUTPUT_TIM4_IC4 (1)(2)
AnnaBridge 171:3a7713b1edbc 724 * @arg @ref LL_COMP_OUTPUT_TIM4_OCREFCLR (1)(2)
AnnaBridge 171:3a7713b1edbc 725 * @arg @ref LL_COMP_OUTPUT_TIM10_IC1 (1)(2)
AnnaBridge 171:3a7713b1edbc 726 *
AnnaBridge 171:3a7713b1edbc 727 * (1) Parameter availability depending on timer availability
AnnaBridge 171:3a7713b1edbc 728 * on the selected device.
AnnaBridge 171:3a7713b1edbc 729 * (2) Available only on COMP instance: COMP2.
AnnaBridge 171:3a7713b1edbc 730 */
AnnaBridge 171:3a7713b1edbc 731 __STATIC_INLINE uint32_t LL_COMP_GetOutputSelection(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 732 {
AnnaBridge 171:3a7713b1edbc 733 /* On this STM32 serie, only COMP instance COMP2 has feature output */
AnnaBridge 171:3a7713b1edbc 734 /* selection. Check of comparator instance is implemented to return */
AnnaBridge 171:3a7713b1edbc 735 /* the comparator output depending on COMP instance selected. */
AnnaBridge 171:3a7713b1edbc 736 return (uint32_t)((READ_BIT(COMP->CSR, COMP_CSR_OUTSEL) * __COMP_IS_INSTANCE_EVEN(COMPx))
AnnaBridge 171:3a7713b1edbc 737 | (LL_COMP_OUTPUT_NONE * __COMP_IS_INSTANCE_ODD(COMPx)));
AnnaBridge 171:3a7713b1edbc 738 }
AnnaBridge 171:3a7713b1edbc 739
AnnaBridge 171:3a7713b1edbc 740 /**
AnnaBridge 171:3a7713b1edbc 741 * @}
AnnaBridge 171:3a7713b1edbc 742 */
AnnaBridge 171:3a7713b1edbc 743
AnnaBridge 171:3a7713b1edbc 744 /** @defgroup COMP_LL_EF_Operation Operation on comparator instance
AnnaBridge 171:3a7713b1edbc 745 * @{
AnnaBridge 171:3a7713b1edbc 746 */
AnnaBridge 171:3a7713b1edbc 747
AnnaBridge 171:3a7713b1edbc 748 /**
AnnaBridge 171:3a7713b1edbc 749 * @brief Enable comparator instance.
AnnaBridge 171:3a7713b1edbc 750 * @note After enable from off state, comparator requires a delay
AnnaBridge 171:3a7713b1edbc 751 * to reach reach propagation delay specification.
AnnaBridge 171:3a7713b1edbc 752 * Refer to device datasheet, parameter "tSTART".
AnnaBridge 171:3a7713b1edbc 753 * @rmtoll CSR COMP1EN LL_COMP_Enable\n
AnnaBridge 171:3a7713b1edbc 754 * CSR COMP_CSR_INSEL LL_COMP_Enable
AnnaBridge 171:3a7713b1edbc 755 * @param COMPx Comparator instance (1)
AnnaBridge 171:3a7713b1edbc 756 *
AnnaBridge 171:3a7713b1edbc 757 * (1) On this STM32 serie, the only COMP instance that can be enabled
AnnaBridge 171:3a7713b1edbc 758 * using this function is COMP1.
AnnaBridge 171:3a7713b1edbc 759 * COMP2 is enabled by setting input minus.
AnnaBridge 171:3a7713b1edbc 760 * Refer to function @ref LL_COMP_SetInputMinus().
AnnaBridge 171:3a7713b1edbc 761 * @retval None
AnnaBridge 171:3a7713b1edbc 762 */
AnnaBridge 171:3a7713b1edbc 763 __STATIC_INLINE void LL_COMP_Enable(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 764 {
AnnaBridge 171:3a7713b1edbc 765 /* On this STM32 serie, only COMP instance COMP1 has a dedicated bit */
AnnaBridge 171:3a7713b1edbc 766 /* for comparator enable. Check of comparator instance is implemented */
AnnaBridge 171:3a7713b1edbc 767 /* to modify register only if COMP1 is selected. */
AnnaBridge 171:3a7713b1edbc 768 SET_BIT(COMP->CSR, __COMP_IS_INSTANCE_ODD(COMPx) << LL_COMP_ENABLE_COMP1_BITOFFSET_POS);
AnnaBridge 171:3a7713b1edbc 769 }
AnnaBridge 171:3a7713b1edbc 770
AnnaBridge 171:3a7713b1edbc 771 /**
AnnaBridge 171:3a7713b1edbc 772 * @brief Disable comparator instance.
AnnaBridge 171:3a7713b1edbc 773 * @note On this STM32 serie, COMP2 is disabled by clearing input minus
AnnaBridge 171:3a7713b1edbc 774 * selection. If COMP2 must be enabled afterwards, input minus must
AnnaBridge 171:3a7713b1edbc 775 * be set. Refer to function @ref LL_COMP_SetInputMinus().
AnnaBridge 171:3a7713b1edbc 776 * @rmtoll CSR COMP1EN LL_COMP_Disable\n
AnnaBridge 171:3a7713b1edbc 777 * CSR COMP_CSR_INSEL LL_COMP_Disable
AnnaBridge 171:3a7713b1edbc 778 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 779 * @retval None
AnnaBridge 171:3a7713b1edbc 780 */
AnnaBridge 171:3a7713b1edbc 781 __STATIC_INLINE void LL_COMP_Disable(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 782 {
AnnaBridge 171:3a7713b1edbc 783 /* Note: On this STM32 serie, COMP2 is enabled by setting input minus. */
AnnaBridge 171:3a7713b1edbc 784 /* Refer to function @ref LL_COMP_SetInputMinus(). */
AnnaBridge 171:3a7713b1edbc 785 /* To disable COMP2, bitfield of input minus selection is reset. */
AnnaBridge 171:3a7713b1edbc 786 CLEAR_BIT(COMP->CSR, (COMP_CSR_CMP1EN * __COMP_IS_INSTANCE_ODD(COMPx)) | (COMP_CSR_INSEL * __COMP_IS_INSTANCE_EVEN(COMPx)));
AnnaBridge 171:3a7713b1edbc 787 }
AnnaBridge 171:3a7713b1edbc 788
AnnaBridge 171:3a7713b1edbc 789 /**
AnnaBridge 171:3a7713b1edbc 790 * @brief Get comparator enable state
AnnaBridge 171:3a7713b1edbc 791 * (0: COMP is disabled, 1: COMP is enabled)
AnnaBridge 171:3a7713b1edbc 792 * @rmtoll CSR COMP1EN LL_COMP_IsEnabled\n
AnnaBridge 171:3a7713b1edbc 793 * CSR COMP_CSR_INSEL LL_COMP_IsEnabled
AnnaBridge 171:3a7713b1edbc 794 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 795 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 796 */
AnnaBridge 171:3a7713b1edbc 797 __STATIC_INLINE uint32_t LL_COMP_IsEnabled(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 798 {
AnnaBridge 171:3a7713b1edbc 799 return (READ_BIT(COMP->CSR, (COMP_CSR_CMP1EN * __COMP_IS_INSTANCE_ODD(COMPx)) | (COMP_CSR_INSEL * __COMP_IS_INSTANCE_EVEN(COMPx))) != (0U));
AnnaBridge 171:3a7713b1edbc 800 }
AnnaBridge 171:3a7713b1edbc 801
AnnaBridge 171:3a7713b1edbc 802 /**
AnnaBridge 171:3a7713b1edbc 803 * @brief Read comparator instance output level.
AnnaBridge 171:3a7713b1edbc 804 * @note On this STM32 serie, comparator polarity is not settable
AnnaBridge 171:3a7713b1edbc 805 * and not inverted:
AnnaBridge 171:3a7713b1edbc 806 * - Comparator output is low when the input plus
AnnaBridge 171:3a7713b1edbc 807 * is at a lower voltage than the input minus
AnnaBridge 171:3a7713b1edbc 808 * - Comparator output is high when the input plus
AnnaBridge 171:3a7713b1edbc 809 * is at a higher voltage than the input minus
AnnaBridge 171:3a7713b1edbc 810 * @rmtoll CSR CMP1OUT LL_COMP_ReadOutputLevel\n
AnnaBridge 171:3a7713b1edbc 811 * CSR CMP2OUT LL_COMP_ReadOutputLevel
AnnaBridge 171:3a7713b1edbc 812 * @param COMPx Comparator instance
AnnaBridge 171:3a7713b1edbc 813 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 814 * @arg @ref LL_COMP_OUTPUT_LEVEL_LOW
AnnaBridge 171:3a7713b1edbc 815 * @arg @ref LL_COMP_OUTPUT_LEVEL_HIGH
AnnaBridge 171:3a7713b1edbc 816 */
AnnaBridge 171:3a7713b1edbc 817 __STATIC_INLINE uint32_t LL_COMP_ReadOutputLevel(COMP_TypeDef *COMPx)
AnnaBridge 171:3a7713b1edbc 818 {
AnnaBridge 171:3a7713b1edbc 819 return (uint32_t)(READ_BIT(COMP->CSR,
AnnaBridge 171:3a7713b1edbc 820 ((__COMP_IS_INSTANCE_ODD(COMPx) << LL_COMP_OUTPUT_LEVEL_COMP1_BITOFFSET_POS) | (__COMP_IS_INSTANCE_EVEN(COMPx) << LL_COMP_OUTPUT_LEVEL_COMP2_BITOFFSET_POS)))
AnnaBridge 171:3a7713b1edbc 821 >> (LL_COMP_OUTPUT_LEVEL_COMP1_BITOFFSET_POS + ((LL_COMP_OUTPUT_LEVEL_COMP2_BITOFFSET_POS - LL_COMP_OUTPUT_LEVEL_COMP1_BITOFFSET_POS) * __COMP_IS_INSTANCE_EVEN(COMPx)))
AnnaBridge 171:3a7713b1edbc 822 );
AnnaBridge 171:3a7713b1edbc 823 }
AnnaBridge 171:3a7713b1edbc 824
AnnaBridge 171:3a7713b1edbc 825 /**
AnnaBridge 171:3a7713b1edbc 826 * @}
AnnaBridge 171:3a7713b1edbc 827 */
AnnaBridge 171:3a7713b1edbc 828
AnnaBridge 171:3a7713b1edbc 829 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 171:3a7713b1edbc 830 /** @defgroup COMP_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 171:3a7713b1edbc 831 * @{
AnnaBridge 171:3a7713b1edbc 832 */
AnnaBridge 171:3a7713b1edbc 833
AnnaBridge 171:3a7713b1edbc 834 ErrorStatus LL_COMP_DeInit(COMP_TypeDef *COMPx);
AnnaBridge 171:3a7713b1edbc 835 ErrorStatus LL_COMP_Init(COMP_TypeDef *COMPx, LL_COMP_InitTypeDef *COMP_InitStruct);
AnnaBridge 171:3a7713b1edbc 836 void LL_COMP_StructInit(LL_COMP_InitTypeDef *COMP_InitStruct);
AnnaBridge 171:3a7713b1edbc 837
AnnaBridge 171:3a7713b1edbc 838 /**
AnnaBridge 171:3a7713b1edbc 839 * @}
AnnaBridge 171:3a7713b1edbc 840 */
AnnaBridge 171:3a7713b1edbc 841 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 171:3a7713b1edbc 842
AnnaBridge 171:3a7713b1edbc 843 /**
AnnaBridge 171:3a7713b1edbc 844 * @}
AnnaBridge 171:3a7713b1edbc 845 */
AnnaBridge 171:3a7713b1edbc 846
AnnaBridge 171:3a7713b1edbc 847 /**
AnnaBridge 171:3a7713b1edbc 848 * @}
AnnaBridge 171:3a7713b1edbc 849 */
AnnaBridge 171:3a7713b1edbc 850
AnnaBridge 171:3a7713b1edbc 851 #endif /* COMP1 || COMP2 */
AnnaBridge 171:3a7713b1edbc 852
AnnaBridge 171:3a7713b1edbc 853 /**
AnnaBridge 171:3a7713b1edbc 854 * @}
AnnaBridge 171:3a7713b1edbc 855 */
AnnaBridge 171:3a7713b1edbc 856
AnnaBridge 171:3a7713b1edbc 857 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 858 }
AnnaBridge 171:3a7713b1edbc 859 #endif
AnnaBridge 171:3a7713b1edbc 860
AnnaBridge 171:3a7713b1edbc 861 #endif /* __STM32L1xx_LL_COMP_H */
AnnaBridge 171:3a7713b1edbc 862
AnnaBridge 171:3a7713b1edbc 863 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/