mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
targets/TARGET_STM/TARGET_STM32F0/device/stm32f0xx_ll_comp.c@189:f392fc9709a3, 2019-02-20 (annotated)
- Committer:
- AnnaBridge
- Date:
- Wed Feb 20 22:31:08 2019 +0000
- Revision:
- 189:f392fc9709a3
- Parent:
- 180:96ed750bd169
mbed library release version 165
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
<> | 156:95d6b41a828b | 1 | /** |
<> | 156:95d6b41a828b | 2 | ****************************************************************************** |
<> | 156:95d6b41a828b | 3 | * @file stm32f0xx_ll_comp.c |
<> | 156:95d6b41a828b | 4 | * @author MCD Application Team |
<> | 156:95d6b41a828b | 5 | * @brief COMP LL module driver |
<> | 156:95d6b41a828b | 6 | ****************************************************************************** |
<> | 156:95d6b41a828b | 7 | * @attention |
<> | 156:95d6b41a828b | 8 | * |
<> | 156:95d6b41a828b | 9 | * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> |
<> | 156:95d6b41a828b | 10 | * |
<> | 156:95d6b41a828b | 11 | * Redistribution and use in source and binary forms, with or without modification, |
<> | 156:95d6b41a828b | 12 | * are permitted provided that the following conditions are met: |
<> | 156:95d6b41a828b | 13 | * 1. Redistributions of source code must retain the above copyright notice, |
<> | 156:95d6b41a828b | 14 | * this list of conditions and the following disclaimer. |
<> | 156:95d6b41a828b | 15 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
<> | 156:95d6b41a828b | 16 | * this list of conditions and the following disclaimer in the documentation |
<> | 156:95d6b41a828b | 17 | * and/or other materials provided with the distribution. |
<> | 156:95d6b41a828b | 18 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
<> | 156:95d6b41a828b | 19 | * may be used to endorse or promote products derived from this software |
<> | 156:95d6b41a828b | 20 | * without specific prior written permission. |
<> | 156:95d6b41a828b | 21 | * |
<> | 156:95d6b41a828b | 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
<> | 156:95d6b41a828b | 23 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
<> | 156:95d6b41a828b | 24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
<> | 156:95d6b41a828b | 25 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
<> | 156:95d6b41a828b | 26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
<> | 156:95d6b41a828b | 27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
<> | 156:95d6b41a828b | 28 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
<> | 156:95d6b41a828b | 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
<> | 156:95d6b41a828b | 30 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
<> | 156:95d6b41a828b | 31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
<> | 156:95d6b41a828b | 32 | * |
<> | 156:95d6b41a828b | 33 | ****************************************************************************** |
<> | 156:95d6b41a828b | 34 | */ |
<> | 156:95d6b41a828b | 35 | #if defined(USE_FULL_LL_DRIVER) |
<> | 156:95d6b41a828b | 36 | |
<> | 156:95d6b41a828b | 37 | /* Includes ------------------------------------------------------------------*/ |
<> | 156:95d6b41a828b | 38 | #include "stm32f0xx_ll_comp.h" |
<> | 156:95d6b41a828b | 39 | |
<> | 156:95d6b41a828b | 40 | #ifdef USE_FULL_ASSERT |
<> | 156:95d6b41a828b | 41 | #include "stm32_assert.h" |
<> | 156:95d6b41a828b | 42 | #else |
<> | 156:95d6b41a828b | 43 | #define assert_param(expr) ((void)0U) |
<> | 156:95d6b41a828b | 44 | #endif |
<> | 156:95d6b41a828b | 45 | |
<> | 156:95d6b41a828b | 46 | /** @addtogroup STM32F0xx_LL_Driver |
<> | 156:95d6b41a828b | 47 | * @{ |
<> | 156:95d6b41a828b | 48 | */ |
<> | 156:95d6b41a828b | 49 | |
<> | 156:95d6b41a828b | 50 | #if defined (COMP1) || defined (COMP2) |
<> | 156:95d6b41a828b | 51 | |
<> | 156:95d6b41a828b | 52 | /** @addtogroup COMP_LL COMP |
<> | 156:95d6b41a828b | 53 | * @{ |
<> | 156:95d6b41a828b | 54 | */ |
<> | 156:95d6b41a828b | 55 | |
<> | 156:95d6b41a828b | 56 | /* Private types -------------------------------------------------------------*/ |
<> | 156:95d6b41a828b | 57 | /* Private variables ---------------------------------------------------------*/ |
<> | 156:95d6b41a828b | 58 | /* Private constants ---------------------------------------------------------*/ |
<> | 156:95d6b41a828b | 59 | /* Private macros ------------------------------------------------------------*/ |
<> | 156:95d6b41a828b | 60 | |
<> | 156:95d6b41a828b | 61 | /** @addtogroup COMP_LL_Private_Macros |
<> | 156:95d6b41a828b | 62 | * @{ |
<> | 156:95d6b41a828b | 63 | */ |
<> | 156:95d6b41a828b | 64 | |
<> | 156:95d6b41a828b | 65 | /* Check of parameters for configuration of COMP hierarchical scope: */ |
<> | 156:95d6b41a828b | 66 | /* COMP instance. */ |
<> | 156:95d6b41a828b | 67 | |
<> | 156:95d6b41a828b | 68 | #define IS_LL_COMP_POWER_MODE(__POWER_MODE__) \ |
<> | 156:95d6b41a828b | 69 | ( ((__POWER_MODE__) == LL_COMP_POWERMODE_HIGHSPEED) \ |
<> | 156:95d6b41a828b | 70 | || ((__POWER_MODE__) == LL_COMP_POWERMODE_MEDIUMSPEED) \ |
<> | 156:95d6b41a828b | 71 | || ((__POWER_MODE__) == LL_COMP_POWERMODE_LOWPOWER) \ |
<> | 156:95d6b41a828b | 72 | || ((__POWER_MODE__) == LL_COMP_POWERMODE_ULTRALOWPOWER) \ |
<> | 156:95d6b41a828b | 73 | ) |
<> | 156:95d6b41a828b | 74 | |
<> | 156:95d6b41a828b | 75 | /* Note: On this STM32 serie, comparator input plus parameters are */ |
<> | 156:95d6b41a828b | 76 | /* the different depending on COMP instances. */ |
<> | 156:95d6b41a828b | 77 | #define IS_LL_COMP_INPUT_PLUS(__COMP_INSTANCE__, __INPUT_PLUS__) \ |
<> | 156:95d6b41a828b | 78 | (((__COMP_INSTANCE__) == COMP1) \ |
<> | 156:95d6b41a828b | 79 | ? ( \ |
<> | 156:95d6b41a828b | 80 | ((__INPUT_PLUS__) == LL_COMP_INPUT_PLUS_IO1) \ |
<> | 156:95d6b41a828b | 81 | || ((__INPUT_PLUS__) == LL_COMP_INPUT_PLUS_DAC1_CH1) \ |
<> | 156:95d6b41a828b | 82 | ) \ |
<> | 156:95d6b41a828b | 83 | : \ |
<> | 156:95d6b41a828b | 84 | ( \ |
<> | 156:95d6b41a828b | 85 | ((__INPUT_PLUS__) == LL_COMP_INPUT_PLUS_IO1) \ |
<> | 156:95d6b41a828b | 86 | ) \ |
<> | 156:95d6b41a828b | 87 | ) |
<> | 156:95d6b41a828b | 88 | |
<> | 156:95d6b41a828b | 89 | /* Note: On this STM32 serie, comparator input minus parameters are */ |
<> | 156:95d6b41a828b | 90 | /* the same on all COMP instances. */ |
<> | 156:95d6b41a828b | 91 | /* However, comparator instance kept as macro parameter for */ |
<> | 156:95d6b41a828b | 92 | /* compatibility with other STM32 families. */ |
<> | 156:95d6b41a828b | 93 | #define IS_LL_COMP_INPUT_MINUS(__COMP_INSTANCE__, __INPUT_MINUS__) \ |
<> | 156:95d6b41a828b | 94 | ( ((__INPUT_MINUS__) == LL_COMP_INPUT_MINUS_1_4VREFINT) \ |
<> | 156:95d6b41a828b | 95 | || ((__INPUT_MINUS__) == LL_COMP_INPUT_MINUS_1_2VREFINT) \ |
<> | 156:95d6b41a828b | 96 | || ((__INPUT_MINUS__) == LL_COMP_INPUT_MINUS_3_4VREFINT) \ |
<> | 156:95d6b41a828b | 97 | || ((__INPUT_MINUS__) == LL_COMP_INPUT_MINUS_VREFINT) \ |
<> | 156:95d6b41a828b | 98 | || ((__INPUT_MINUS__) == LL_COMP_INPUT_MINUS_DAC1_CH1) \ |
<> | 156:95d6b41a828b | 99 | || ((__INPUT_MINUS__) == LL_COMP_INPUT_MINUS_DAC1_CH2) \ |
<> | 156:95d6b41a828b | 100 | || ((__INPUT_MINUS__) == LL_COMP_INPUT_MINUS_IO1) \ |
<> | 156:95d6b41a828b | 101 | ) |
<> | 156:95d6b41a828b | 102 | |
<> | 156:95d6b41a828b | 103 | #define IS_LL_COMP_INPUT_HYSTERESIS(__INPUT_HYSTERESIS__) \ |
<> | 156:95d6b41a828b | 104 | ( ((__INPUT_HYSTERESIS__) == LL_COMP_HYSTERESIS_NONE) \ |
<> | 156:95d6b41a828b | 105 | || ((__INPUT_HYSTERESIS__) == LL_COMP_HYSTERESIS_LOW) \ |
<> | 156:95d6b41a828b | 106 | || ((__INPUT_HYSTERESIS__) == LL_COMP_HYSTERESIS_MEDIUM) \ |
<> | 156:95d6b41a828b | 107 | || ((__INPUT_HYSTERESIS__) == LL_COMP_HYSTERESIS_HIGH) \ |
<> | 156:95d6b41a828b | 108 | ) |
<> | 156:95d6b41a828b | 109 | |
<> | 156:95d6b41a828b | 110 | #define IS_LL_COMP_OUTPUT_SELECTION(__OUTPUT_SELECTION__) \ |
<> | 156:95d6b41a828b | 111 | ( ((__OUTPUT_SELECTION__) == LL_COMP_OUTPUT_NONE) \ |
<> | 156:95d6b41a828b | 112 | || ((__OUTPUT_SELECTION__) == LL_COMP_OUTPUT_TIM1_BKIN) \ |
<> | 156:95d6b41a828b | 113 | || ((__OUTPUT_SELECTION__) == LL_COMP_OUTPUT_TIM1_IC1) \ |
<> | 156:95d6b41a828b | 114 | || ((__OUTPUT_SELECTION__) == LL_COMP_OUTPUT_TIM1_OCCLR) \ |
<> | 156:95d6b41a828b | 115 | || ((__OUTPUT_SELECTION__) == LL_COMP_OUTPUT_TIM2_IC4) \ |
<> | 156:95d6b41a828b | 116 | || ((__OUTPUT_SELECTION__) == LL_COMP_OUTPUT_TIM2_OCCLR) \ |
<> | 156:95d6b41a828b | 117 | || ((__OUTPUT_SELECTION__) == LL_COMP_OUTPUT_TIM3_IC1) \ |
<> | 156:95d6b41a828b | 118 | || ((__OUTPUT_SELECTION__) == LL_COMP_OUTPUT_TIM3_OCCLR) \ |
<> | 156:95d6b41a828b | 119 | ) |
<> | 156:95d6b41a828b | 120 | |
<> | 156:95d6b41a828b | 121 | #define IS_LL_COMP_OUTPUT_POLARITY(__POLARITY__) \ |
<> | 156:95d6b41a828b | 122 | ( ((__POLARITY__) == LL_COMP_OUTPUTPOL_NONINVERTED) \ |
<> | 156:95d6b41a828b | 123 | || ((__POLARITY__) == LL_COMP_OUTPUTPOL_INVERTED) \ |
<> | 156:95d6b41a828b | 124 | ) |
<> | 156:95d6b41a828b | 125 | |
<> | 156:95d6b41a828b | 126 | /** |
<> | 156:95d6b41a828b | 127 | * @} |
<> | 156:95d6b41a828b | 128 | */ |
<> | 156:95d6b41a828b | 129 | |
<> | 156:95d6b41a828b | 130 | |
<> | 156:95d6b41a828b | 131 | /* Private function prototypes -----------------------------------------------*/ |
<> | 156:95d6b41a828b | 132 | |
<> | 156:95d6b41a828b | 133 | /* Exported functions --------------------------------------------------------*/ |
<> | 156:95d6b41a828b | 134 | /** @addtogroup COMP_LL_Exported_Functions |
<> | 156:95d6b41a828b | 135 | * @{ |
<> | 156:95d6b41a828b | 136 | */ |
<> | 156:95d6b41a828b | 137 | |
<> | 156:95d6b41a828b | 138 | /** @addtogroup COMP_LL_EF_Init |
<> | 156:95d6b41a828b | 139 | * @{ |
<> | 156:95d6b41a828b | 140 | */ |
<> | 156:95d6b41a828b | 141 | |
<> | 156:95d6b41a828b | 142 | /** |
<> | 156:95d6b41a828b | 143 | * @brief De-initialize registers of the selected COMP instance |
<> | 156:95d6b41a828b | 144 | * to their default reset values. |
<> | 156:95d6b41a828b | 145 | * @note If comparator is locked, de-initialization by software is |
<> | 156:95d6b41a828b | 146 | * not possible. |
<> | 156:95d6b41a828b | 147 | * The only way to unlock the comparator is a device hardware reset. |
<> | 156:95d6b41a828b | 148 | * @param COMPx COMP instance |
<> | 156:95d6b41a828b | 149 | * @retval An ErrorStatus enumeration value: |
<> | 156:95d6b41a828b | 150 | * - SUCCESS: COMP registers are de-initialized |
<> | 156:95d6b41a828b | 151 | * - ERROR: COMP registers are not de-initialized |
<> | 156:95d6b41a828b | 152 | */ |
<> | 156:95d6b41a828b | 153 | ErrorStatus LL_COMP_DeInit(COMP_TypeDef *COMPx) |
<> | 156:95d6b41a828b | 154 | { |
<> | 156:95d6b41a828b | 155 | ErrorStatus status = SUCCESS; |
<> | 156:95d6b41a828b | 156 | |
<> | 156:95d6b41a828b | 157 | /* Check the parameters */ |
<> | 156:95d6b41a828b | 158 | assert_param(IS_COMP_ALL_INSTANCE(COMPx)); |
<> | 156:95d6b41a828b | 159 | |
<> | 156:95d6b41a828b | 160 | /* Note: Hardware constraint (refer to description of this function): */ |
<> | 156:95d6b41a828b | 161 | /* COMP instance must not be locked. */ |
<> | 156:95d6b41a828b | 162 | if(LL_COMP_IsLocked(COMPx) == 0U) |
<> | 156:95d6b41a828b | 163 | { |
<> | 156:95d6b41a828b | 164 | /* Note: Connection switch is applicable only to COMP instance COMP1, */ |
<> | 156:95d6b41a828b | 165 | /* therefore is COMP2 is selected the equivalent bit is */ |
<> | 156:95d6b41a828b | 166 | /* kept unmodified. */ |
<> | 156:95d6b41a828b | 167 | if(COMPx == COMP1) |
<> | 156:95d6b41a828b | 168 | { |
<> | 156:95d6b41a828b | 169 | CLEAR_BIT(COMP->CSR, |
<> | 156:95d6b41a828b | 170 | ( COMP_CSR_COMP1MODE |
<> | 156:95d6b41a828b | 171 | | COMP_CSR_COMP1INSEL |
<> | 156:95d6b41a828b | 172 | | COMP_CSR_COMP1SW1 |
<> | 156:95d6b41a828b | 173 | | COMP_CSR_COMP1OUTSEL |
<> | 156:95d6b41a828b | 174 | | COMP_CSR_COMP1HYST |
<> | 156:95d6b41a828b | 175 | | COMP_CSR_COMP1POL |
<> | 156:95d6b41a828b | 176 | | COMP_CSR_COMP1EN |
<> | 156:95d6b41a828b | 177 | ) << __COMP_BITOFFSET_INSTANCE(COMPx) |
<> | 156:95d6b41a828b | 178 | ); |
<> | 156:95d6b41a828b | 179 | } |
<> | 156:95d6b41a828b | 180 | else |
<> | 156:95d6b41a828b | 181 | { |
<> | 156:95d6b41a828b | 182 | CLEAR_BIT(COMP->CSR, |
<> | 156:95d6b41a828b | 183 | ( COMP_CSR_COMP1MODE |
<> | 156:95d6b41a828b | 184 | | COMP_CSR_COMP1INSEL |
<> | 156:95d6b41a828b | 185 | | COMP_CSR_COMP1OUTSEL |
<> | 156:95d6b41a828b | 186 | | COMP_CSR_COMP1HYST |
<> | 156:95d6b41a828b | 187 | | COMP_CSR_COMP1POL |
<> | 156:95d6b41a828b | 188 | | COMP_CSR_COMP1EN |
<> | 156:95d6b41a828b | 189 | ) << __COMP_BITOFFSET_INSTANCE(COMPx) |
<> | 156:95d6b41a828b | 190 | ); |
<> | 156:95d6b41a828b | 191 | } |
<> | 156:95d6b41a828b | 192 | |
<> | 156:95d6b41a828b | 193 | } |
<> | 156:95d6b41a828b | 194 | else |
<> | 156:95d6b41a828b | 195 | { |
<> | 156:95d6b41a828b | 196 | /* Comparator instance is locked: de-initialization by software is */ |
<> | 156:95d6b41a828b | 197 | /* not possible. */ |
<> | 156:95d6b41a828b | 198 | /* The only way to unlock the comparator is a device hardware reset. */ |
<> | 156:95d6b41a828b | 199 | status = ERROR; |
<> | 156:95d6b41a828b | 200 | } |
<> | 156:95d6b41a828b | 201 | |
<> | 156:95d6b41a828b | 202 | return status; |
<> | 156:95d6b41a828b | 203 | } |
<> | 156:95d6b41a828b | 204 | |
<> | 156:95d6b41a828b | 205 | /** |
<> | 156:95d6b41a828b | 206 | * @brief Initialize some features of COMP instance. |
<> | 156:95d6b41a828b | 207 | * @note This function configures features of the selected COMP instance. |
<> | 156:95d6b41a828b | 208 | * Some features are also available at scope COMP common instance |
<> | 156:95d6b41a828b | 209 | * (common to several COMP instances). |
<> | 156:95d6b41a828b | 210 | * Refer to functions having argument "COMPxy_COMMON" as parameter. |
<> | 156:95d6b41a828b | 211 | * @param COMPx COMP instance |
<> | 156:95d6b41a828b | 212 | * @param COMP_InitStruct Pointer to a @ref LL_COMP_InitTypeDef structure |
<> | 156:95d6b41a828b | 213 | * @retval An ErrorStatus enumeration value: |
<> | 156:95d6b41a828b | 214 | * - SUCCESS: COMP registers are initialized |
<> | 156:95d6b41a828b | 215 | * - ERROR: COMP registers are not initialized |
<> | 156:95d6b41a828b | 216 | */ |
<> | 156:95d6b41a828b | 217 | ErrorStatus LL_COMP_Init(COMP_TypeDef *COMPx, LL_COMP_InitTypeDef *COMP_InitStruct) |
<> | 156:95d6b41a828b | 218 | { |
<> | 156:95d6b41a828b | 219 | ErrorStatus status = SUCCESS; |
<> | 156:95d6b41a828b | 220 | |
<> | 156:95d6b41a828b | 221 | /* Check the parameters */ |
<> | 156:95d6b41a828b | 222 | assert_param(IS_COMP_ALL_INSTANCE(COMPx)); |
<> | 156:95d6b41a828b | 223 | assert_param(IS_LL_COMP_POWER_MODE(COMP_InitStruct->PowerMode)); |
<> | 156:95d6b41a828b | 224 | assert_param(IS_LL_COMP_INPUT_PLUS(COMPx, COMP_InitStruct->InputPlus)); |
<> | 156:95d6b41a828b | 225 | assert_param(IS_LL_COMP_INPUT_MINUS(COMPx, COMP_InitStruct->InputMinus)); |
<> | 156:95d6b41a828b | 226 | assert_param(IS_LL_COMP_INPUT_HYSTERESIS(COMP_InitStruct->InputHysteresis)); |
<> | 156:95d6b41a828b | 227 | assert_param(IS_LL_COMP_OUTPUT_SELECTION(COMP_InitStruct->OutputSelection)); |
<> | 156:95d6b41a828b | 228 | assert_param(IS_LL_COMP_OUTPUT_POLARITY(COMP_InitStruct->OutputPolarity)); |
<> | 156:95d6b41a828b | 229 | |
<> | 156:95d6b41a828b | 230 | /* Note: Hardware constraint (refer to description of this function) */ |
<> | 156:95d6b41a828b | 231 | /* COMP instance must not be locked. */ |
<> | 156:95d6b41a828b | 232 | if(LL_COMP_IsLocked(COMPx) == 0U) |
<> | 156:95d6b41a828b | 233 | { |
<> | 156:95d6b41a828b | 234 | /* Configuration of comparator instance : */ |
<> | 156:95d6b41a828b | 235 | /* - PowerMode */ |
<> | 156:95d6b41a828b | 236 | /* - InputPlus */ |
<> | 156:95d6b41a828b | 237 | /* - InputMinus */ |
<> | 156:95d6b41a828b | 238 | /* - InputHysteresis */ |
<> | 156:95d6b41a828b | 239 | /* - OutputSelection */ |
<> | 156:95d6b41a828b | 240 | /* - OutputPolarity */ |
<> | 156:95d6b41a828b | 241 | /* Note: Connection switch is applicable only to COMP instance COMP1, */ |
<> | 156:95d6b41a828b | 242 | /* therefore is COMP2 is selected the equivalent bit is */ |
<> | 156:95d6b41a828b | 243 | /* kept unmodified. */ |
<> | 156:95d6b41a828b | 244 | if(COMPx == COMP1) |
<> | 156:95d6b41a828b | 245 | { |
<> | 156:95d6b41a828b | 246 | MODIFY_REG(COMP->CSR, |
<> | 156:95d6b41a828b | 247 | ( COMP_CSR_COMP1MODE |
<> | 156:95d6b41a828b | 248 | | COMP_CSR_COMP1INSEL |
<> | 156:95d6b41a828b | 249 | | COMP_CSR_COMP1SW1 |
<> | 156:95d6b41a828b | 250 | | COMP_CSR_COMP1OUTSEL |
<> | 156:95d6b41a828b | 251 | | COMP_CSR_COMP1HYST |
<> | 156:95d6b41a828b | 252 | | COMP_CSR_COMP1POL |
<> | 156:95d6b41a828b | 253 | ) << __COMP_BITOFFSET_INSTANCE(COMPx) |
<> | 156:95d6b41a828b | 254 | , |
<> | 156:95d6b41a828b | 255 | ( COMP_InitStruct->PowerMode |
<> | 156:95d6b41a828b | 256 | | COMP_InitStruct->InputPlus |
<> | 156:95d6b41a828b | 257 | | COMP_InitStruct->InputMinus |
<> | 156:95d6b41a828b | 258 | | COMP_InitStruct->InputHysteresis |
<> | 156:95d6b41a828b | 259 | | COMP_InitStruct->OutputSelection |
<> | 156:95d6b41a828b | 260 | | COMP_InitStruct->OutputPolarity |
<> | 156:95d6b41a828b | 261 | ) << __COMP_BITOFFSET_INSTANCE(COMPx) |
<> | 156:95d6b41a828b | 262 | ); |
<> | 156:95d6b41a828b | 263 | } |
<> | 156:95d6b41a828b | 264 | else |
<> | 156:95d6b41a828b | 265 | { |
<> | 156:95d6b41a828b | 266 | MODIFY_REG(COMP->CSR, |
<> | 156:95d6b41a828b | 267 | ( COMP_CSR_COMP1MODE |
<> | 156:95d6b41a828b | 268 | | COMP_CSR_COMP1INSEL |
<> | 156:95d6b41a828b | 269 | | COMP_CSR_COMP1OUTSEL |
<> | 156:95d6b41a828b | 270 | | COMP_CSR_COMP1HYST |
<> | 156:95d6b41a828b | 271 | | COMP_CSR_COMP1POL |
<> | 156:95d6b41a828b | 272 | ) << __COMP_BITOFFSET_INSTANCE(COMPx) |
<> | 156:95d6b41a828b | 273 | , |
<> | 156:95d6b41a828b | 274 | ( COMP_InitStruct->PowerMode |
<> | 156:95d6b41a828b | 275 | | COMP_InitStruct->InputPlus |
<> | 156:95d6b41a828b | 276 | | COMP_InitStruct->InputMinus |
<> | 156:95d6b41a828b | 277 | | COMP_InitStruct->InputHysteresis |
<> | 156:95d6b41a828b | 278 | | COMP_InitStruct->OutputSelection |
<> | 156:95d6b41a828b | 279 | | COMP_InitStruct->OutputPolarity |
<> | 156:95d6b41a828b | 280 | ) << __COMP_BITOFFSET_INSTANCE(COMPx) |
<> | 156:95d6b41a828b | 281 | ); |
<> | 156:95d6b41a828b | 282 | } |
<> | 156:95d6b41a828b | 283 | |
<> | 156:95d6b41a828b | 284 | } |
<> | 156:95d6b41a828b | 285 | else |
<> | 156:95d6b41a828b | 286 | { |
<> | 156:95d6b41a828b | 287 | /* Initialization error: COMP instance is locked. */ |
<> | 156:95d6b41a828b | 288 | status = ERROR; |
<> | 156:95d6b41a828b | 289 | } |
<> | 156:95d6b41a828b | 290 | |
<> | 156:95d6b41a828b | 291 | return status; |
<> | 156:95d6b41a828b | 292 | } |
<> | 156:95d6b41a828b | 293 | |
<> | 156:95d6b41a828b | 294 | /** |
<> | 156:95d6b41a828b | 295 | * @brief Set each @ref LL_COMP_InitTypeDef field to default value. |
Anna Bridge |
180:96ed750bd169 | 296 | * @param COMP_InitStruct pointer to a @ref LL_COMP_InitTypeDef structure |
<> | 156:95d6b41a828b | 297 | * whose fields will be set to default values. |
<> | 156:95d6b41a828b | 298 | * @retval None |
<> | 156:95d6b41a828b | 299 | */ |
<> | 156:95d6b41a828b | 300 | void LL_COMP_StructInit(LL_COMP_InitTypeDef *COMP_InitStruct) |
<> | 156:95d6b41a828b | 301 | { |
<> | 156:95d6b41a828b | 302 | /* Set COMP_InitStruct fields to default values */ |
<> | 156:95d6b41a828b | 303 | COMP_InitStruct->PowerMode = LL_COMP_POWERMODE_ULTRALOWPOWER; |
<> | 156:95d6b41a828b | 304 | COMP_InitStruct->InputPlus = LL_COMP_INPUT_PLUS_IO1; |
<> | 156:95d6b41a828b | 305 | COMP_InitStruct->InputMinus = LL_COMP_INPUT_MINUS_VREFINT; |
<> | 156:95d6b41a828b | 306 | COMP_InitStruct->InputHysteresis = LL_COMP_HYSTERESIS_NONE; |
<> | 156:95d6b41a828b | 307 | COMP_InitStruct->OutputSelection = LL_COMP_OUTPUT_NONE; |
<> | 156:95d6b41a828b | 308 | COMP_InitStruct->OutputPolarity = LL_COMP_OUTPUTPOL_NONINVERTED; |
<> | 156:95d6b41a828b | 309 | } |
<> | 156:95d6b41a828b | 310 | |
<> | 156:95d6b41a828b | 311 | /** |
<> | 156:95d6b41a828b | 312 | * @} |
<> | 156:95d6b41a828b | 313 | */ |
<> | 156:95d6b41a828b | 314 | |
<> | 156:95d6b41a828b | 315 | /** |
<> | 156:95d6b41a828b | 316 | * @} |
<> | 156:95d6b41a828b | 317 | */ |
<> | 156:95d6b41a828b | 318 | |
<> | 156:95d6b41a828b | 319 | /** |
<> | 156:95d6b41a828b | 320 | * @} |
<> | 156:95d6b41a828b | 321 | */ |
<> | 156:95d6b41a828b | 322 | |
<> | 156:95d6b41a828b | 323 | #endif /* COMP1 || COMP2 */ |
<> | 156:95d6b41a828b | 324 | |
<> | 156:95d6b41a828b | 325 | /** |
<> | 156:95d6b41a828b | 326 | * @} |
<> | 156:95d6b41a828b | 327 | */ |
<> | 156:95d6b41a828b | 328 | |
<> | 156:95d6b41a828b | 329 | #endif /* USE_FULL_LL_DRIVER */ |
<> | 156:95d6b41a828b | 330 | |
<> | 156:95d6b41a828b | 331 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |