mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

Committer:
Anna Bridge
Date:
Wed Jan 17 16:13:02 2018 +0000
Revision:
160:5571c4ff569f
Parent:
156:ff21514d8981
mbed library. Release version 158

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 156:ff21514d8981 1 /**
AnnaBridge 156:ff21514d8981 2 ******************************************************************************
AnnaBridge 156:ff21514d8981 3 * @file stm32f0xx_hal_comp.h
AnnaBridge 156:ff21514d8981 4 * @author MCD Application Team
AnnaBridge 156:ff21514d8981 5 * @brief Header file of COMP HAL module.
AnnaBridge 156:ff21514d8981 6 ******************************************************************************
AnnaBridge 156:ff21514d8981 7 * @attention
AnnaBridge 156:ff21514d8981 8 *
AnnaBridge 156:ff21514d8981 9 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 156:ff21514d8981 10 *
AnnaBridge 156:ff21514d8981 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 156:ff21514d8981 12 * are permitted provided that the following conditions are met:
AnnaBridge 156:ff21514d8981 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 156:ff21514d8981 14 * this list of conditions and the following disclaimer.
AnnaBridge 156:ff21514d8981 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 156:ff21514d8981 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 156:ff21514d8981 17 * and/or other materials provided with the distribution.
AnnaBridge 156:ff21514d8981 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 156:ff21514d8981 19 * may be used to endorse or promote products derived from this software
AnnaBridge 156:ff21514d8981 20 * without specific prior written permission.
AnnaBridge 156:ff21514d8981 21 *
AnnaBridge 156:ff21514d8981 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 156:ff21514d8981 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 156:ff21514d8981 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 156:ff21514d8981 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 156:ff21514d8981 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 156:ff21514d8981 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 156:ff21514d8981 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 156:ff21514d8981 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 156:ff21514d8981 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 156:ff21514d8981 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 156:ff21514d8981 32 *
AnnaBridge 156:ff21514d8981 33 ******************************************************************************
AnnaBridge 156:ff21514d8981 34 */
AnnaBridge 156:ff21514d8981 35
AnnaBridge 156:ff21514d8981 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 156:ff21514d8981 37 #ifndef __STM32F0xx_HAL_COMP_H
AnnaBridge 156:ff21514d8981 38 #define __STM32F0xx_HAL_COMP_H
AnnaBridge 156:ff21514d8981 39
AnnaBridge 156:ff21514d8981 40 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 41 extern "C" {
AnnaBridge 156:ff21514d8981 42 #endif
AnnaBridge 156:ff21514d8981 43
AnnaBridge 156:ff21514d8981 44 #if defined(STM32F051x8) || defined(STM32F058xx) || \
AnnaBridge 156:ff21514d8981 45 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
AnnaBridge 156:ff21514d8981 46 defined(STM32F091xC) || defined(STM32F098xx)
AnnaBridge 156:ff21514d8981 47
AnnaBridge 156:ff21514d8981 48 /* Includes ------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 49 #include "stm32f0xx_hal_def.h"
AnnaBridge 156:ff21514d8981 50
AnnaBridge 156:ff21514d8981 51 /** @addtogroup STM32F0xx_HAL_Driver
AnnaBridge 156:ff21514d8981 52 * @{
AnnaBridge 156:ff21514d8981 53 */
AnnaBridge 156:ff21514d8981 54
AnnaBridge 156:ff21514d8981 55 /** @addtogroup COMP COMP
AnnaBridge 156:ff21514d8981 56 * @{
AnnaBridge 156:ff21514d8981 57 */
AnnaBridge 156:ff21514d8981 58
AnnaBridge 156:ff21514d8981 59 /* Exported types ------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 60 /** @defgroup COMP_Exported_Types COMP Exported Types
AnnaBridge 156:ff21514d8981 61 * @{
AnnaBridge 156:ff21514d8981 62 */
AnnaBridge 156:ff21514d8981 63
AnnaBridge 156:ff21514d8981 64 /**
AnnaBridge 156:ff21514d8981 65 * @brief COMP Init structure definition
AnnaBridge 156:ff21514d8981 66 */
AnnaBridge 156:ff21514d8981 67 typedef struct
AnnaBridge 156:ff21514d8981 68 {
AnnaBridge 156:ff21514d8981 69
AnnaBridge 156:ff21514d8981 70 uint32_t InvertingInput; /*!< Selects the inverting input of the comparator.
AnnaBridge 156:ff21514d8981 71 This parameter can be a value of @ref COMP_InvertingInput */
AnnaBridge 156:ff21514d8981 72
AnnaBridge 156:ff21514d8981 73 uint32_t NonInvertingInput; /*!< Selects the non inverting input of the comparator.
AnnaBridge 156:ff21514d8981 74 This parameter can be a value of @ref COMP_NonInvertingInput */
AnnaBridge 156:ff21514d8981 75
AnnaBridge 156:ff21514d8981 76 uint32_t Output; /*!< Selects the output redirection of the comparator.
AnnaBridge 156:ff21514d8981 77 This parameter can be a value of @ref COMP_Output */
AnnaBridge 156:ff21514d8981 78
AnnaBridge 156:ff21514d8981 79 uint32_t OutputPol; /*!< Selects the output polarity of the comparator.
AnnaBridge 156:ff21514d8981 80 This parameter can be a value of @ref COMP_OutputPolarity */
AnnaBridge 156:ff21514d8981 81
AnnaBridge 156:ff21514d8981 82 uint32_t Hysteresis; /*!< Selects the hysteresis voltage of the comparator.
AnnaBridge 156:ff21514d8981 83 This parameter can be a value of @ref COMP_Hysteresis */
AnnaBridge 156:ff21514d8981 84
AnnaBridge 156:ff21514d8981 85 uint32_t Mode; /*!< Selects the operating comsumption mode of the comparator
AnnaBridge 156:ff21514d8981 86 to adjust the speed/consumption.
AnnaBridge 156:ff21514d8981 87 This parameter can be a value of @ref COMP_Mode */
AnnaBridge 156:ff21514d8981 88
AnnaBridge 156:ff21514d8981 89 uint32_t WindowMode; /*!< Selects the window mode of the comparator 1 & 2.
AnnaBridge 156:ff21514d8981 90 This parameter can be a value of @ref COMP_WindowMode */
AnnaBridge 156:ff21514d8981 91
AnnaBridge 156:ff21514d8981 92 uint32_t TriggerMode; /*!< Selects the trigger mode of the comparator (interrupt mode).
AnnaBridge 156:ff21514d8981 93 This parameter can be a value of @ref COMP_TriggerMode */
AnnaBridge 156:ff21514d8981 94
AnnaBridge 156:ff21514d8981 95 }COMP_InitTypeDef;
AnnaBridge 156:ff21514d8981 96
AnnaBridge 156:ff21514d8981 97 /**
AnnaBridge 156:ff21514d8981 98 * @brief COMP Handle Structure definition
AnnaBridge 156:ff21514d8981 99 */
AnnaBridge 156:ff21514d8981 100 typedef struct
AnnaBridge 156:ff21514d8981 101 {
AnnaBridge 156:ff21514d8981 102 COMP_TypeDef *Instance; /*!< Register base address */
AnnaBridge 156:ff21514d8981 103 COMP_InitTypeDef Init; /*!< COMP required parameters */
AnnaBridge 156:ff21514d8981 104 HAL_LockTypeDef Lock; /*!< Locking object */
AnnaBridge 156:ff21514d8981 105 __IO uint32_t State; /*!< COMP communication state
AnnaBridge 156:ff21514d8981 106 This parameter can be a value of @ref COMP_State */
AnnaBridge 156:ff21514d8981 107 }COMP_HandleTypeDef;
AnnaBridge 156:ff21514d8981 108
AnnaBridge 156:ff21514d8981 109 /**
AnnaBridge 156:ff21514d8981 110 * @}
AnnaBridge 156:ff21514d8981 111 */
AnnaBridge 156:ff21514d8981 112
AnnaBridge 156:ff21514d8981 113 /* Exported constants --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 114 /** @defgroup COMP_Exported_Constants COMP Exported Constants
AnnaBridge 156:ff21514d8981 115 * @{
AnnaBridge 156:ff21514d8981 116 */
AnnaBridge 156:ff21514d8981 117
AnnaBridge 156:ff21514d8981 118 /** @defgroup COMP_State COMP State
AnnaBridge 156:ff21514d8981 119 * @{
AnnaBridge 156:ff21514d8981 120 */
AnnaBridge 156:ff21514d8981 121 #define HAL_COMP_STATE_RESET (0x00000000U) /*!< COMP not yet initialized or disabled */
AnnaBridge 156:ff21514d8981 122 #define HAL_COMP_STATE_READY (0x00000001U) /*!< COMP initialized and ready for use */
AnnaBridge 156:ff21514d8981 123 #define HAL_COMP_STATE_READY_LOCKED (0x00000011U) /*!< COMP initialized but the configuration is locked */
AnnaBridge 156:ff21514d8981 124 #define HAL_COMP_STATE_BUSY (0x00000002U) /*!< COMP is running */
AnnaBridge 156:ff21514d8981 125 #define HAL_COMP_STATE_BUSY_LOCKED (0x00000012U) /*!< COMP is running and the configuration is locked */
AnnaBridge 156:ff21514d8981 126 /**
AnnaBridge 156:ff21514d8981 127 * @}
AnnaBridge 156:ff21514d8981 128 */
AnnaBridge 156:ff21514d8981 129
AnnaBridge 156:ff21514d8981 130 /** @defgroup COMP_OutputPolarity COMP OutputPolarity
AnnaBridge 156:ff21514d8981 131 * @{
AnnaBridge 156:ff21514d8981 132 */
AnnaBridge 156:ff21514d8981 133 #define COMP_OUTPUTPOL_NONINVERTED (0x00000000U) /*!< COMP output on GPIO isn't inverted */
AnnaBridge 156:ff21514d8981 134 #define COMP_OUTPUTPOL_INVERTED COMP_CSR_COMP1POL /*!< COMP output on GPIO is inverted */
AnnaBridge 156:ff21514d8981 135 /**
AnnaBridge 156:ff21514d8981 136 * @}
AnnaBridge 156:ff21514d8981 137 */
AnnaBridge 156:ff21514d8981 138
AnnaBridge 156:ff21514d8981 139 /** @defgroup COMP_Hysteresis COMP Hysteresis
AnnaBridge 156:ff21514d8981 140 * @{
AnnaBridge 156:ff21514d8981 141 */
AnnaBridge 156:ff21514d8981 142 #define COMP_HYSTERESIS_NONE (0x00000000U) /*!< No hysteresis */
AnnaBridge 156:ff21514d8981 143 #define COMP_HYSTERESIS_LOW COMP_CSR_COMP1HYST_0 /*!< Hysteresis level low */
AnnaBridge 156:ff21514d8981 144 #define COMP_HYSTERESIS_MEDIUM COMP_CSR_COMP1HYST_1 /*!< Hysteresis level medium */
AnnaBridge 156:ff21514d8981 145 #define COMP_HYSTERESIS_HIGH COMP_CSR_COMP1HYST /*!< Hysteresis level high */
AnnaBridge 156:ff21514d8981 146 /**
AnnaBridge 156:ff21514d8981 147 * @}
AnnaBridge 156:ff21514d8981 148 */
AnnaBridge 156:ff21514d8981 149
AnnaBridge 156:ff21514d8981 150 /** @defgroup COMP_Mode COMP Mode
AnnaBridge 156:ff21514d8981 151 * @{
AnnaBridge 156:ff21514d8981 152 */
AnnaBridge 156:ff21514d8981 153 /* Please refer to the electrical characteristics in the device datasheet for
AnnaBridge 156:ff21514d8981 154 the power consumption values */
AnnaBridge 156:ff21514d8981 155 #define COMP_MODE_HIGHSPEED (0x00000000U) /*!< High Speed */
AnnaBridge 156:ff21514d8981 156 #define COMP_MODE_MEDIUMSPEED COMP_CSR_COMP1MODE_0 /*!< Medium Speed */
AnnaBridge 156:ff21514d8981 157 #define COMP_MODE_LOWPOWER COMP_CSR_COMP1MODE_1 /*!< Low power mode */
AnnaBridge 156:ff21514d8981 158 #define COMP_MODE_ULTRALOWPOWER COMP_CSR_COMP1MODE /*!< Ultra-low power mode */
AnnaBridge 156:ff21514d8981 159 /**
AnnaBridge 156:ff21514d8981 160 * @}
AnnaBridge 156:ff21514d8981 161 */
AnnaBridge 156:ff21514d8981 162
AnnaBridge 156:ff21514d8981 163 /** @defgroup COMP_InvertingInput COMP InvertingInput
AnnaBridge 156:ff21514d8981 164 * @{
AnnaBridge 156:ff21514d8981 165 */
AnnaBridge 156:ff21514d8981 166
AnnaBridge 156:ff21514d8981 167 #define COMP_INVERTINGINPUT_1_4VREFINT (0x00000000U) /*!< 1/4 VREFINT connected to comparator inverting input */
AnnaBridge 156:ff21514d8981 168 #define COMP_INVERTINGINPUT_1_2VREFINT COMP_CSR_COMP1INSEL_0 /*!< 1/2 VREFINT connected to comparator inverting input */
AnnaBridge 156:ff21514d8981 169 #define COMP_INVERTINGINPUT_3_4VREFINT COMP_CSR_COMP1INSEL_1 /*!< 3/4 VREFINT connected to comparator inverting input */
AnnaBridge 156:ff21514d8981 170 #define COMP_INVERTINGINPUT_VREFINT (COMP_CSR_COMP1INSEL_1|COMP_CSR_COMP1INSEL_0) /*!< VREFINT connected to comparator inverting input */
AnnaBridge 156:ff21514d8981 171 #define COMP_INVERTINGINPUT_DAC1 COMP_CSR_COMP1INSEL_2 /*!< DAC_OUT1 (PA4) connected to comparator inverting input */
AnnaBridge 156:ff21514d8981 172 #define COMP_INVERTINGINPUT_DAC1SWITCHCLOSED (COMP_CSR_COMP1INSEL_2|COMP_CSR_COMP1SW1) /*!< DAC_OUT1 (PA4) connected to comparator inverting input
AnnaBridge 156:ff21514d8981 173 and close switch (PA0 for COMP1 only) */
AnnaBridge 156:ff21514d8981 174 #define COMP_INVERTINGINPUT_DAC2 (COMP_CSR_COMP1INSEL_2|COMP_CSR_COMP1INSEL_0) /*!< DAC_OUT2 (PA5) connected to comparator inverting input */
AnnaBridge 156:ff21514d8981 175 #define COMP_INVERTINGINPUT_IO1 (COMP_CSR_COMP1INSEL_2|COMP_CSR_COMP1INSEL_1) /*!< IO (PA0 for COMP1 and PA2 for COMP2) connected to comparator inverting input */
AnnaBridge 156:ff21514d8981 176 /**
AnnaBridge 156:ff21514d8981 177 * @}
AnnaBridge 156:ff21514d8981 178 */
AnnaBridge 156:ff21514d8981 179
AnnaBridge 156:ff21514d8981 180 /** @defgroup COMP_NonInvertingInput COMP NonInvertingInput
AnnaBridge 156:ff21514d8981 181 * @{
AnnaBridge 156:ff21514d8981 182 */
AnnaBridge 156:ff21514d8981 183 #define COMP_NONINVERTINGINPUT_IO1 (0x00000000U) /*!< I/O1 (PA1 for COMP1, PA3 for COMP2)
AnnaBridge 156:ff21514d8981 184 connected to comparator non inverting input */
AnnaBridge 156:ff21514d8981 185 #define COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED COMP_CSR_COMP1SW1 /*!< DAC ouput connected to comparator COMP1 non inverting input */
AnnaBridge 156:ff21514d8981 186 /**
AnnaBridge 156:ff21514d8981 187 * @}
AnnaBridge 156:ff21514d8981 188 */
AnnaBridge 156:ff21514d8981 189
AnnaBridge 156:ff21514d8981 190 /** @defgroup COMP_Output COMP Output
AnnaBridge 156:ff21514d8981 191 * @{
AnnaBridge 156:ff21514d8981 192 */
AnnaBridge 156:ff21514d8981 193
AnnaBridge 156:ff21514d8981 194 /* Output Redirection common for COMP1 and COMP2 */
AnnaBridge 156:ff21514d8981 195 #define COMP_OUTPUT_NONE (0x00000000U) /*!< COMP output isn't connected to other peripherals */
AnnaBridge 156:ff21514d8981 196 #define COMP_OUTPUT_TIM1BKIN COMP_CSR_COMP1OUTSEL_0 /*!< COMP output connected to TIM1 Break Input (BKIN) */
AnnaBridge 156:ff21514d8981 197 #define COMP_OUTPUT_TIM1IC1 COMP_CSR_COMP1OUTSEL_1 /*!< COMP output connected to TIM1 Input Capture 1 */
AnnaBridge 156:ff21514d8981 198 #define COMP_OUTPUT_TIM1OCREFCLR (COMP_CSR_COMP1OUTSEL_1|COMP_CSR_COMP1OUTSEL_0) /*!< COMP output connected to TIM1 OCREF Clear */
AnnaBridge 156:ff21514d8981 199 #define COMP_OUTPUT_TIM2IC4 COMP_CSR_COMP1OUTSEL_2 /*!< COMP output connected to TIM2 Input Capture 4 */
AnnaBridge 156:ff21514d8981 200 #define COMP_OUTPUT_TIM2OCREFCLR (COMP_CSR_COMP1OUTSEL_2|COMP_CSR_COMP1OUTSEL_0) /*!< COMP output connected to TIM2 OCREF Clear */
AnnaBridge 156:ff21514d8981 201 #define COMP_OUTPUT_TIM3IC1 (COMP_CSR_COMP1OUTSEL_2|COMP_CSR_COMP1OUTSEL_1) /*!< COMP output connected to TIM3 Input Capture 1 */
AnnaBridge 156:ff21514d8981 202 #define COMP_OUTPUT_TIM3OCREFCLR COMP_CSR_COMP1OUTSEL /*!< COMP output connected to TIM3 OCREF Clear */
AnnaBridge 156:ff21514d8981 203 /**
AnnaBridge 156:ff21514d8981 204 * @}
AnnaBridge 156:ff21514d8981 205 */
AnnaBridge 156:ff21514d8981 206
AnnaBridge 156:ff21514d8981 207 /** @defgroup COMP_OutputLevel COMP OutputLevel
AnnaBridge 156:ff21514d8981 208 * @{
AnnaBridge 156:ff21514d8981 209 */
AnnaBridge 156:ff21514d8981 210 /* When output polarity is not inverted, comparator output is low when
AnnaBridge 156:ff21514d8981 211 the non-inverting input is at a lower voltage than the inverting input*/
AnnaBridge 156:ff21514d8981 212 #define COMP_OUTPUTLEVEL_LOW (0x00000000U)
AnnaBridge 156:ff21514d8981 213 /* When output polarity is not inverted, comparator output is high when
AnnaBridge 156:ff21514d8981 214 the non-inverting input is at a higher voltage than the inverting input */
AnnaBridge 156:ff21514d8981 215 #define COMP_OUTPUTLEVEL_HIGH COMP_CSR_COMP1OUT
AnnaBridge 156:ff21514d8981 216 /**
AnnaBridge 156:ff21514d8981 217 * @}
AnnaBridge 156:ff21514d8981 218 */
AnnaBridge 156:ff21514d8981 219
AnnaBridge 156:ff21514d8981 220 /** @defgroup COMP_TriggerMode COMP TriggerMode
AnnaBridge 156:ff21514d8981 221 * @{
AnnaBridge 156:ff21514d8981 222 */
AnnaBridge 156:ff21514d8981 223 #define COMP_TRIGGERMODE_NONE (0x00000000U) /*!< No External Interrupt trigger detection */
AnnaBridge 156:ff21514d8981 224 #define COMP_TRIGGERMODE_IT_RISING (0x00000001U) /*!< External Interrupt Mode with Rising edge trigger detection */
AnnaBridge 156:ff21514d8981 225 #define COMP_TRIGGERMODE_IT_FALLING (0x00000002U) /*!< External Interrupt Mode with Falling edge trigger detection */
AnnaBridge 156:ff21514d8981 226 #define COMP_TRIGGERMODE_IT_RISING_FALLING (0x00000003U) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */
AnnaBridge 156:ff21514d8981 227 #define COMP_TRIGGERMODE_EVENT_RISING (0x00000010U) /*!< Event Mode with Rising edge trigger detection */
AnnaBridge 156:ff21514d8981 228 #define COMP_TRIGGERMODE_EVENT_FALLING (0x00000020U) /*!< Event Mode with Falling edge trigger detection */
AnnaBridge 156:ff21514d8981 229 #define COMP_TRIGGERMODE_EVENT_RISING_FALLING (0x00000030U) /*!< Event Mode with Rising/Falling edge trigger detection */
AnnaBridge 156:ff21514d8981 230 /**
AnnaBridge 156:ff21514d8981 231 * @}
AnnaBridge 156:ff21514d8981 232 */
AnnaBridge 156:ff21514d8981 233
AnnaBridge 156:ff21514d8981 234 /** @defgroup COMP_WindowMode COMP WindowMode
AnnaBridge 156:ff21514d8981 235 * @{
AnnaBridge 156:ff21514d8981 236 */
AnnaBridge 156:ff21514d8981 237 #define COMP_WINDOWMODE_DISABLE (0x00000000U) /*!< Window mode disabled */
AnnaBridge 156:ff21514d8981 238 #define COMP_WINDOWMODE_ENABLE COMP_CSR_WNDWEN /*!< Window mode enabled: non inverting input of comparator 2
AnnaBridge 156:ff21514d8981 239 is connected to the non inverting input of comparator 1 (PA1) */
AnnaBridge 156:ff21514d8981 240 /**
AnnaBridge 156:ff21514d8981 241 * @}
AnnaBridge 156:ff21514d8981 242 */
AnnaBridge 156:ff21514d8981 243
AnnaBridge 156:ff21514d8981 244 /** @defgroup COMP_Flag COMP Flag
AnnaBridge 156:ff21514d8981 245 * @{
AnnaBridge 156:ff21514d8981 246 */
AnnaBridge 156:ff21514d8981 247 #define COMP_FLAG_LOCK ((uint32_t)COMP_CSR_COMPxLOCK) /*!< Lock flag */
AnnaBridge 156:ff21514d8981 248
AnnaBridge 156:ff21514d8981 249 /**
AnnaBridge 156:ff21514d8981 250 * @}
AnnaBridge 156:ff21514d8981 251 */
AnnaBridge 156:ff21514d8981 252
AnnaBridge 156:ff21514d8981 253 /**
AnnaBridge 156:ff21514d8981 254 * @}
AnnaBridge 156:ff21514d8981 255 */
AnnaBridge 156:ff21514d8981 256
AnnaBridge 156:ff21514d8981 257 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 258 /** @defgroup COMP_Exported_Macros COMP Exported Macros
AnnaBridge 156:ff21514d8981 259 * @{
AnnaBridge 156:ff21514d8981 260 */
AnnaBridge 156:ff21514d8981 261
AnnaBridge 156:ff21514d8981 262 /** @brief Reset COMP handle state
Anna Bridge 160:5571c4ff569f 263 * @param __HANDLE__ COMP handle.
AnnaBridge 156:ff21514d8981 264 * @retval None
AnnaBridge 156:ff21514d8981 265 */
AnnaBridge 156:ff21514d8981 266 #define __HAL_COMP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_COMP_STATE_RESET)
AnnaBridge 156:ff21514d8981 267
AnnaBridge 156:ff21514d8981 268 /**
AnnaBridge 156:ff21514d8981 269 * @brief Enable the specified comparator.
Anna Bridge 160:5571c4ff569f 270 * @param __HANDLE__ COMP handle.
AnnaBridge 156:ff21514d8981 271 * @retval None
AnnaBridge 156:ff21514d8981 272 */
AnnaBridge 156:ff21514d8981 273 #define __HAL_COMP_ENABLE(__HANDLE__) (((__HANDLE__)->Instance == COMP1) ? \
AnnaBridge 156:ff21514d8981 274 SET_BIT(COMP->CSR, COMP_CSR_COMP1EN) : \
AnnaBridge 156:ff21514d8981 275 SET_BIT(COMP->CSR, COMP_CSR_COMP2EN))
AnnaBridge 156:ff21514d8981 276
AnnaBridge 156:ff21514d8981 277 /**
AnnaBridge 156:ff21514d8981 278 * @brief Disable the specified comparator.
Anna Bridge 160:5571c4ff569f 279 * @param __HANDLE__ COMP handle.
AnnaBridge 156:ff21514d8981 280 * @retval None
AnnaBridge 156:ff21514d8981 281 */
AnnaBridge 156:ff21514d8981 282 #define __HAL_COMP_DISABLE(__HANDLE__) (((__HANDLE__)->Instance == COMP1) ? \
AnnaBridge 156:ff21514d8981 283 CLEAR_BIT(COMP->CSR, COMP_CSR_COMP1EN) : \
AnnaBridge 156:ff21514d8981 284 CLEAR_BIT(COMP->CSR, COMP_CSR_COMP2EN))
AnnaBridge 156:ff21514d8981 285
AnnaBridge 156:ff21514d8981 286 /**
AnnaBridge 156:ff21514d8981 287 * @brief Lock the specified comparator configuration.
Anna Bridge 160:5571c4ff569f 288 * @param __HANDLE__ COMP handle.
AnnaBridge 156:ff21514d8981 289 * @retval None
AnnaBridge 156:ff21514d8981 290 */
AnnaBridge 156:ff21514d8981 291 #define __HAL_COMP_LOCK(__HANDLE__) (((__HANDLE__)->Instance == COMP1) ? \
AnnaBridge 156:ff21514d8981 292 SET_BIT(COMP->CSR, COMP_CSR_COMP1LOCK) : \
AnnaBridge 156:ff21514d8981 293 SET_BIT(COMP->CSR, COMP_CSR_COMP2LOCK))
AnnaBridge 156:ff21514d8981 294
AnnaBridge 156:ff21514d8981 295 /**
AnnaBridge 156:ff21514d8981 296 * @brief Enable the COMP1 EXTI line rising edge trigger.
AnnaBridge 156:ff21514d8981 297 * @retval None
AnnaBridge 156:ff21514d8981 298 */
AnnaBridge 156:ff21514d8981 299 #define __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 300
AnnaBridge 156:ff21514d8981 301 /**
AnnaBridge 156:ff21514d8981 302 * @brief Disable the COMP1 EXTI line rising edge trigger.
AnnaBridge 156:ff21514d8981 303 * @retval None
AnnaBridge 156:ff21514d8981 304 */
AnnaBridge 156:ff21514d8981 305 #define __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 306
AnnaBridge 156:ff21514d8981 307 /**
AnnaBridge 156:ff21514d8981 308 * @brief Enable the COMP1 EXTI line falling edge trigger.
AnnaBridge 156:ff21514d8981 309 * @retval None
AnnaBridge 156:ff21514d8981 310 */
AnnaBridge 156:ff21514d8981 311 #define __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 312
AnnaBridge 156:ff21514d8981 313 /**
AnnaBridge 156:ff21514d8981 314 * @brief Disable the COMP1 EXTI line falling edge trigger.
AnnaBridge 156:ff21514d8981 315 * @retval None
AnnaBridge 156:ff21514d8981 316 */
AnnaBridge 156:ff21514d8981 317 #define __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 318
AnnaBridge 156:ff21514d8981 319 /**
AnnaBridge 156:ff21514d8981 320 * @brief Enable the COMP1 EXTI line rising & falling edge trigger.
AnnaBridge 156:ff21514d8981 321 * @retval None
AnnaBridge 156:ff21514d8981 322 */
AnnaBridge 156:ff21514d8981 323 #define __HAL_COMP_COMP1_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 156:ff21514d8981 324 __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 156:ff21514d8981 325 __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 156:ff21514d8981 326 } while(0)
AnnaBridge 156:ff21514d8981 327
AnnaBridge 156:ff21514d8981 328 /**
AnnaBridge 156:ff21514d8981 329 * @brief Disable the COMP1 EXTI line rising & falling edge trigger.
AnnaBridge 156:ff21514d8981 330 * @retval None
AnnaBridge 156:ff21514d8981 331 */
AnnaBridge 156:ff21514d8981 332 #define __HAL_COMP_COMP1_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 156:ff21514d8981 333 __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 156:ff21514d8981 334 __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 156:ff21514d8981 335 } while(0)
AnnaBridge 156:ff21514d8981 336
AnnaBridge 156:ff21514d8981 337 /**
AnnaBridge 156:ff21514d8981 338 * @brief Enable the COMP1 EXTI line in interrupt mode.
AnnaBridge 156:ff21514d8981 339 * @retval None
AnnaBridge 156:ff21514d8981 340 */
AnnaBridge 156:ff21514d8981 341 #define __HAL_COMP_COMP1_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 342
AnnaBridge 156:ff21514d8981 343 /**
AnnaBridge 156:ff21514d8981 344 * @brief Disable the COMP1 EXTI line in interrupt mode.
AnnaBridge 156:ff21514d8981 345 * @retval None
AnnaBridge 156:ff21514d8981 346 */
AnnaBridge 156:ff21514d8981 347 #define __HAL_COMP_COMP1_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 348
AnnaBridge 156:ff21514d8981 349 /**
AnnaBridge 156:ff21514d8981 350 * @brief Generate a software interrupt on the COMP1 EXTI line.
AnnaBridge 156:ff21514d8981 351 * @retval None
AnnaBridge 156:ff21514d8981 352 */
AnnaBridge 156:ff21514d8981 353 #define __HAL_COMP_COMP1_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 354
AnnaBridge 156:ff21514d8981 355 /**
AnnaBridge 156:ff21514d8981 356 * @brief Enable the COMP1 EXTI Line in event mode.
AnnaBridge 156:ff21514d8981 357 * @retval None
AnnaBridge 156:ff21514d8981 358 */
AnnaBridge 156:ff21514d8981 359 #define __HAL_COMP_COMP1_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 360
AnnaBridge 156:ff21514d8981 361 /**
AnnaBridge 156:ff21514d8981 362 * @brief Disable the COMP1 EXTI Line in event mode.
AnnaBridge 156:ff21514d8981 363 * @retval None
AnnaBridge 156:ff21514d8981 364 */
AnnaBridge 156:ff21514d8981 365 #define __HAL_COMP_COMP1_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 366
AnnaBridge 156:ff21514d8981 367 /**
AnnaBridge 156:ff21514d8981 368 * @brief Check whether the COMP1 EXTI line flag is set or not.
AnnaBridge 156:ff21514d8981 369 * @retval RESET or SET
AnnaBridge 156:ff21514d8981 370 */
AnnaBridge 156:ff21514d8981 371 #define __HAL_COMP_COMP1_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 372
AnnaBridge 156:ff21514d8981 373 /**
AnnaBridge 156:ff21514d8981 374 * @brief Clear the COMP1 EXTI flag.
AnnaBridge 156:ff21514d8981 375 * @retval None
AnnaBridge 156:ff21514d8981 376 */
AnnaBridge 156:ff21514d8981 377 #define __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP1)
AnnaBridge 156:ff21514d8981 378
AnnaBridge 156:ff21514d8981 379 /**
AnnaBridge 156:ff21514d8981 380 * @brief Enable the COMP2 EXTI line rising edge trigger.
AnnaBridge 156:ff21514d8981 381 * @retval None
AnnaBridge 156:ff21514d8981 382 */
AnnaBridge 156:ff21514d8981 383 #define __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 384
AnnaBridge 156:ff21514d8981 385 /**
AnnaBridge 156:ff21514d8981 386 * @brief Disable the COMP2 EXTI line rising edge trigger.
AnnaBridge 156:ff21514d8981 387 * @retval None
AnnaBridge 156:ff21514d8981 388 */
AnnaBridge 156:ff21514d8981 389 #define __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 390
AnnaBridge 156:ff21514d8981 391 /**
AnnaBridge 156:ff21514d8981 392 * @brief Enable the COMP2 EXTI line falling edge trigger.
AnnaBridge 156:ff21514d8981 393 * @retval None
AnnaBridge 156:ff21514d8981 394 */
AnnaBridge 156:ff21514d8981 395 #define __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 396
AnnaBridge 156:ff21514d8981 397 /**
AnnaBridge 156:ff21514d8981 398 * @brief Disable the COMP2 EXTI line falling edge trigger.
AnnaBridge 156:ff21514d8981 399 * @retval None
AnnaBridge 156:ff21514d8981 400 */
AnnaBridge 156:ff21514d8981 401 #define __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 402
AnnaBridge 156:ff21514d8981 403 /**
AnnaBridge 156:ff21514d8981 404 * @brief Enable the COMP2 EXTI line rising & falling edge trigger.
AnnaBridge 156:ff21514d8981 405 * @retval None
AnnaBridge 156:ff21514d8981 406 */
AnnaBridge 156:ff21514d8981 407 #define __HAL_COMP_COMP2_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 156:ff21514d8981 408 __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 156:ff21514d8981 409 __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 156:ff21514d8981 410 } while(0)
AnnaBridge 156:ff21514d8981 411
AnnaBridge 156:ff21514d8981 412 /**
AnnaBridge 156:ff21514d8981 413 * @brief Disable the COMP2 EXTI line rising & falling edge trigger.
AnnaBridge 156:ff21514d8981 414 * @retval None
AnnaBridge 156:ff21514d8981 415 */
AnnaBridge 156:ff21514d8981 416 #define __HAL_COMP_COMP2_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 156:ff21514d8981 417 __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 156:ff21514d8981 418 __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 156:ff21514d8981 419 } while(0)
AnnaBridge 156:ff21514d8981 420
AnnaBridge 156:ff21514d8981 421 /**
AnnaBridge 156:ff21514d8981 422 * @brief Enable the COMP2 EXTI line in interrupt mode.
AnnaBridge 156:ff21514d8981 423 * @retval None
AnnaBridge 156:ff21514d8981 424 */
AnnaBridge 156:ff21514d8981 425 #define __HAL_COMP_COMP2_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 426
AnnaBridge 156:ff21514d8981 427 /**
AnnaBridge 156:ff21514d8981 428 * @brief Disable the COMP2 EXTI line in interrupt mode.
AnnaBridge 156:ff21514d8981 429 * @retval None
AnnaBridge 156:ff21514d8981 430 */
AnnaBridge 156:ff21514d8981 431 #define __HAL_COMP_COMP2_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 432
AnnaBridge 156:ff21514d8981 433 /**
AnnaBridge 156:ff21514d8981 434 * @brief Generate a software interrupt on the COMP2 EXTI line.
AnnaBridge 156:ff21514d8981 435 * @retval None
AnnaBridge 156:ff21514d8981 436 */
AnnaBridge 156:ff21514d8981 437 #define __HAL_COMP_COMP2_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 438
AnnaBridge 156:ff21514d8981 439 /**
AnnaBridge 156:ff21514d8981 440 * @brief Enable the COMP2 EXTI Line in event mode.
AnnaBridge 156:ff21514d8981 441 * @retval None
AnnaBridge 156:ff21514d8981 442 */
AnnaBridge 156:ff21514d8981 443 #define __HAL_COMP_COMP2_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 444
AnnaBridge 156:ff21514d8981 445 /**
AnnaBridge 156:ff21514d8981 446 * @brief Disable the COMP2 EXTI Line in event mode.
AnnaBridge 156:ff21514d8981 447 * @retval None
AnnaBridge 156:ff21514d8981 448 */
AnnaBridge 156:ff21514d8981 449 #define __HAL_COMP_COMP2_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 450
AnnaBridge 156:ff21514d8981 451 /**
AnnaBridge 156:ff21514d8981 452 * @brief Check whether the COMP2 EXTI line flag is set or not.
AnnaBridge 156:ff21514d8981 453 * @retval RESET or SET
AnnaBridge 156:ff21514d8981 454 */
AnnaBridge 156:ff21514d8981 455 #define __HAL_COMP_COMP2_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 456
AnnaBridge 156:ff21514d8981 457 /**
AnnaBridge 156:ff21514d8981 458 * @brief Clear the COMP2 EXTI flag.
AnnaBridge 156:ff21514d8981 459 * @retval None
AnnaBridge 156:ff21514d8981 460 */
AnnaBridge 156:ff21514d8981 461 #define __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 462
AnnaBridge 156:ff21514d8981 463 /** @brief Check whether the specified COMP flag is set or not.
Anna Bridge 160:5571c4ff569f 464 * @param __HANDLE__ specifies the COMP Handle.
Anna Bridge 160:5571c4ff569f 465 * @param __FLAG__ specifies the flag to check.
AnnaBridge 156:ff21514d8981 466 * This parameter can be one of the following values:
AnnaBridge 156:ff21514d8981 467 * @arg COMP_FLAG_LOCK: lock flag
AnnaBridge 156:ff21514d8981 468 * @retval The new state of __FLAG__ (TRUE or FALSE).
AnnaBridge 156:ff21514d8981 469 */
AnnaBridge 156:ff21514d8981 470 #define __HAL_COMP_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->CSR & (__FLAG__)) == (__FLAG__))
AnnaBridge 156:ff21514d8981 471
AnnaBridge 156:ff21514d8981 472 /**
AnnaBridge 156:ff21514d8981 473 * @}
AnnaBridge 156:ff21514d8981 474 */
AnnaBridge 156:ff21514d8981 475
AnnaBridge 156:ff21514d8981 476 /* Exported functions --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 477 /** @addtogroup COMP_Exported_Functions COMP Exported Functions
AnnaBridge 156:ff21514d8981 478 * @{
AnnaBridge 156:ff21514d8981 479 */
AnnaBridge 156:ff21514d8981 480 /** @addtogroup COMP_Exported_Functions_Group1 Initialization/de-initialization functions
AnnaBridge 156:ff21514d8981 481 * @brief Initialization and Configuration functions
AnnaBridge 156:ff21514d8981 482 * @{
AnnaBridge 156:ff21514d8981 483 */
AnnaBridge 156:ff21514d8981 484 /* Initialization and de-initialization functions ****************************/
AnnaBridge 156:ff21514d8981 485 HAL_StatusTypeDef HAL_COMP_Init(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 486 HAL_StatusTypeDef HAL_COMP_DeInit (COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 487 void HAL_COMP_MspInit(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 488 void HAL_COMP_MspDeInit(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 489 /**
AnnaBridge 156:ff21514d8981 490 * @}
AnnaBridge 156:ff21514d8981 491 */
AnnaBridge 156:ff21514d8981 492
AnnaBridge 156:ff21514d8981 493 /** @addtogroup COMP_Exported_Functions_Group2 I/O operation functions
AnnaBridge 156:ff21514d8981 494 * @brief Data transfers functions
AnnaBridge 156:ff21514d8981 495 * @{
AnnaBridge 156:ff21514d8981 496 */
AnnaBridge 156:ff21514d8981 497 /* IO operation functions *****************************************************/
AnnaBridge 156:ff21514d8981 498 HAL_StatusTypeDef HAL_COMP_Start(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 499 HAL_StatusTypeDef HAL_COMP_Stop(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 500 HAL_StatusTypeDef HAL_COMP_Start_IT(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 501 HAL_StatusTypeDef HAL_COMP_Stop_IT(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 502 void HAL_COMP_IRQHandler(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 503 /**
AnnaBridge 156:ff21514d8981 504 * @}
AnnaBridge 156:ff21514d8981 505 */
AnnaBridge 156:ff21514d8981 506
AnnaBridge 156:ff21514d8981 507 /** @addtogroup COMP_Exported_Functions_Group3 Peripheral Control functions
AnnaBridge 156:ff21514d8981 508 * @brief management functions
AnnaBridge 156:ff21514d8981 509 * @{
AnnaBridge 156:ff21514d8981 510 */
AnnaBridge 156:ff21514d8981 511 /* Peripheral Control functions ***********************************************/
AnnaBridge 156:ff21514d8981 512 HAL_StatusTypeDef HAL_COMP_Lock(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 513 uint32_t HAL_COMP_GetOutputLevel(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 514
AnnaBridge 156:ff21514d8981 515 /* Callback in Interrupt mode */
AnnaBridge 156:ff21514d8981 516 void HAL_COMP_TriggerCallback(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 517 /**
AnnaBridge 156:ff21514d8981 518 * @}
AnnaBridge 156:ff21514d8981 519 */
AnnaBridge 156:ff21514d8981 520
AnnaBridge 156:ff21514d8981 521 /** @addtogroup COMP_Exported_Functions_Group4 Peripheral State functions
AnnaBridge 156:ff21514d8981 522 * @brief Peripheral State functions
AnnaBridge 156:ff21514d8981 523 * @{
AnnaBridge 156:ff21514d8981 524 */
AnnaBridge 156:ff21514d8981 525 /* Peripheral State and Error functions ***************************************/
AnnaBridge 156:ff21514d8981 526 uint32_t HAL_COMP_GetState(COMP_HandleTypeDef *hcomp);
AnnaBridge 156:ff21514d8981 527 /**
AnnaBridge 156:ff21514d8981 528 * @}
AnnaBridge 156:ff21514d8981 529 */
AnnaBridge 156:ff21514d8981 530
AnnaBridge 156:ff21514d8981 531 /**
AnnaBridge 156:ff21514d8981 532 * @}
AnnaBridge 156:ff21514d8981 533 */
AnnaBridge 156:ff21514d8981 534
AnnaBridge 156:ff21514d8981 535 /* Private types -------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 536 /* Private constants ---------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 537 /** @defgroup COMP_Private_Constants COMP Private Constants
AnnaBridge 156:ff21514d8981 538 * @{
AnnaBridge 156:ff21514d8981 539 */
AnnaBridge 156:ff21514d8981 540 /** @defgroup COMP_ExtiLine COMP EXTI Lines
AnnaBridge 156:ff21514d8981 541 * Elements values convention: XXXX0000
AnnaBridge 156:ff21514d8981 542 * - XXXX : Interrupt mask in the EMR/IMR/RTSR/FTSR register
AnnaBridge 156:ff21514d8981 543 * @{
AnnaBridge 156:ff21514d8981 544 */
AnnaBridge 156:ff21514d8981 545 #define COMP_EXTI_LINE_COMP1 ((uint32_t)EXTI_IMR_MR21) /*!< EXTI line 21 connected to COMP1 output */
AnnaBridge 156:ff21514d8981 546 #define COMP_EXTI_LINE_COMP2 ((uint32_t)EXTI_IMR_MR22) /*!< EXTI line 22 connected to COMP2 output */
AnnaBridge 156:ff21514d8981 547
AnnaBridge 156:ff21514d8981 548 /**
AnnaBridge 156:ff21514d8981 549 * @}
AnnaBridge 156:ff21514d8981 550 */
AnnaBridge 156:ff21514d8981 551
AnnaBridge 156:ff21514d8981 552 /**
AnnaBridge 156:ff21514d8981 553 * @}
AnnaBridge 156:ff21514d8981 554 */
AnnaBridge 156:ff21514d8981 555
AnnaBridge 156:ff21514d8981 556 /* Private macros ------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 557 /** @defgroup COMP_Private_Macros COMP Private Macros
AnnaBridge 156:ff21514d8981 558 * @{
AnnaBridge 156:ff21514d8981 559 */
AnnaBridge 156:ff21514d8981 560 /** @defgroup COMP_GET_EXTI_LINE COMP Private macros to get EXTI line associated with Comparators
AnnaBridge 156:ff21514d8981 561 * @{
AnnaBridge 156:ff21514d8981 562 */
AnnaBridge 156:ff21514d8981 563 /**
AnnaBridge 156:ff21514d8981 564 * @brief Get the specified EXTI line for a comparator instance.
Anna Bridge 160:5571c4ff569f 565 * @param __INSTANCE__ specifies the COMP instance.
AnnaBridge 156:ff21514d8981 566 * @retval value of @ref COMP_ExtiLine
AnnaBridge 156:ff21514d8981 567 */
AnnaBridge 156:ff21514d8981 568 #define COMP_GET_EXTI_LINE(__INSTANCE__) (((__INSTANCE__) == COMP1) ? COMP_EXTI_LINE_COMP1 : \
AnnaBridge 156:ff21514d8981 569 COMP_EXTI_LINE_COMP2)
AnnaBridge 156:ff21514d8981 570 /**
AnnaBridge 156:ff21514d8981 571 * @}
AnnaBridge 156:ff21514d8981 572 */
AnnaBridge 156:ff21514d8981 573
AnnaBridge 156:ff21514d8981 574 /** @defgroup COMP_IS_COMP_Definitions COMP Private macros to check input parameters
AnnaBridge 156:ff21514d8981 575 * @{
AnnaBridge 156:ff21514d8981 576 */
AnnaBridge 156:ff21514d8981 577
AnnaBridge 156:ff21514d8981 578 #define IS_COMP_OUTPUTPOL(POL) (((POL) == COMP_OUTPUTPOL_NONINVERTED) || \
AnnaBridge 156:ff21514d8981 579 ((POL) == COMP_OUTPUTPOL_INVERTED))
AnnaBridge 156:ff21514d8981 580
AnnaBridge 156:ff21514d8981 581 #define IS_COMP_HYSTERESIS(HYSTERESIS) (((HYSTERESIS) == COMP_HYSTERESIS_NONE) || \
AnnaBridge 156:ff21514d8981 582 ((HYSTERESIS) == COMP_HYSTERESIS_LOW) || \
AnnaBridge 156:ff21514d8981 583 ((HYSTERESIS) == COMP_HYSTERESIS_MEDIUM) || \
AnnaBridge 156:ff21514d8981 584 ((HYSTERESIS) == COMP_HYSTERESIS_HIGH))
AnnaBridge 156:ff21514d8981 585
AnnaBridge 156:ff21514d8981 586 #define IS_COMP_MODE(MODE) (((MODE) == COMP_MODE_HIGHSPEED) || \
AnnaBridge 156:ff21514d8981 587 ((MODE) == COMP_MODE_MEDIUMSPEED) || \
AnnaBridge 156:ff21514d8981 588 ((MODE) == COMP_MODE_LOWPOWER) || \
AnnaBridge 156:ff21514d8981 589 ((MODE) == COMP_MODE_ULTRALOWPOWER))
AnnaBridge 156:ff21514d8981 590
AnnaBridge 156:ff21514d8981 591 #define IS_COMP_INVERTINGINPUT(INPUT) (((INPUT) == COMP_INVERTINGINPUT_1_4VREFINT) || \
AnnaBridge 156:ff21514d8981 592 ((INPUT) == COMP_INVERTINGINPUT_1_2VREFINT) || \
AnnaBridge 156:ff21514d8981 593 ((INPUT) == COMP_INVERTINGINPUT_3_4VREFINT) || \
AnnaBridge 156:ff21514d8981 594 ((INPUT) == COMP_INVERTINGINPUT_VREFINT) || \
AnnaBridge 156:ff21514d8981 595 ((INPUT) == COMP_INVERTINGINPUT_DAC1) || \
AnnaBridge 156:ff21514d8981 596 ((INPUT) == COMP_INVERTINGINPUT_DAC1SWITCHCLOSED) || \
AnnaBridge 156:ff21514d8981 597 ((INPUT) == COMP_INVERTINGINPUT_DAC2) || \
AnnaBridge 156:ff21514d8981 598 ((INPUT) == COMP_INVERTINGINPUT_IO1))
AnnaBridge 156:ff21514d8981 599
AnnaBridge 156:ff21514d8981 600 #define IS_COMP_NONINVERTINGINPUT(INPUT) (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 156:ff21514d8981 601 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))
AnnaBridge 156:ff21514d8981 602
AnnaBridge 156:ff21514d8981 603 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 156:ff21514d8981 604 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 156:ff21514d8981 605 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 156:ff21514d8981 606 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 156:ff21514d8981 607 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 156:ff21514d8981 608 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 156:ff21514d8981 609 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 156:ff21514d8981 610 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))
AnnaBridge 156:ff21514d8981 611
AnnaBridge 156:ff21514d8981 612 #define IS_COMP_WINDOWMODE(WINDOWMODE) (((WINDOWMODE) == COMP_WINDOWMODE_DISABLE) || \
AnnaBridge 156:ff21514d8981 613 ((WINDOWMODE) == COMP_WINDOWMODE_ENABLE))
AnnaBridge 156:ff21514d8981 614
AnnaBridge 156:ff21514d8981 615 #define IS_COMP_TRIGGERMODE(__MODE__) (((__MODE__) == COMP_TRIGGERMODE_NONE) || \
AnnaBridge 156:ff21514d8981 616 ((__MODE__) == COMP_TRIGGERMODE_IT_RISING) || \
AnnaBridge 156:ff21514d8981 617 ((__MODE__) == COMP_TRIGGERMODE_IT_FALLING) || \
AnnaBridge 156:ff21514d8981 618 ((__MODE__) == COMP_TRIGGERMODE_IT_RISING_FALLING) || \
AnnaBridge 156:ff21514d8981 619 ((__MODE__) == COMP_TRIGGERMODE_EVENT_RISING) || \
AnnaBridge 156:ff21514d8981 620 ((__MODE__) == COMP_TRIGGERMODE_EVENT_FALLING) || \
AnnaBridge 156:ff21514d8981 621 ((__MODE__) == COMP_TRIGGERMODE_EVENT_RISING_FALLING))
AnnaBridge 156:ff21514d8981 622 /**
AnnaBridge 156:ff21514d8981 623 * @}
AnnaBridge 156:ff21514d8981 624 */
AnnaBridge 156:ff21514d8981 625
AnnaBridge 156:ff21514d8981 626 /** @defgroup COMP_Lock COMP Lock
AnnaBridge 156:ff21514d8981 627 * @{
AnnaBridge 156:ff21514d8981 628 */
AnnaBridge 156:ff21514d8981 629 #define COMP_LOCK_DISABLE (0x00000000U)
AnnaBridge 156:ff21514d8981 630 #define COMP_LOCK_ENABLE COMP_CSR_COMP1LOCK
AnnaBridge 156:ff21514d8981 631
AnnaBridge 156:ff21514d8981 632 #define COMP_STATE_BIT_LOCK (0x10U)
AnnaBridge 156:ff21514d8981 633 /**
AnnaBridge 156:ff21514d8981 634 * @}
AnnaBridge 156:ff21514d8981 635 */
AnnaBridge 156:ff21514d8981 636
AnnaBridge 156:ff21514d8981 637 /**
AnnaBridge 156:ff21514d8981 638 * @}
AnnaBridge 156:ff21514d8981 639 */
AnnaBridge 156:ff21514d8981 640
AnnaBridge 156:ff21514d8981 641 /* Private functions ---------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 642
AnnaBridge 156:ff21514d8981 643 /**
AnnaBridge 156:ff21514d8981 644 * @}
AnnaBridge 156:ff21514d8981 645 */
AnnaBridge 156:ff21514d8981 646
AnnaBridge 156:ff21514d8981 647 /**
AnnaBridge 156:ff21514d8981 648 * @}
AnnaBridge 156:ff21514d8981 649 */
AnnaBridge 156:ff21514d8981 650
AnnaBridge 156:ff21514d8981 651 #endif /* STM32F051x8 || STM32F058xx || */
AnnaBridge 156:ff21514d8981 652 /* STM32F071xB || STM32F072xB || STM32F078xx || */
AnnaBridge 156:ff21514d8981 653 /* STM32F091xC || STM32F098xx */
AnnaBridge 156:ff21514d8981 654
AnnaBridge 156:ff21514d8981 655 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 656 }
AnnaBridge 156:ff21514d8981 657 #endif
AnnaBridge 156:ff21514d8981 658
AnnaBridge 156:ff21514d8981 659 #endif /* __STM32F0xx_HAL_COMP_H */
AnnaBridge 156:ff21514d8981 660
AnnaBridge 156:ff21514d8981 661 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
AnnaBridge 156:ff21514d8981 662