mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 189:f392fc9709a3 1 /**
AnnaBridge 189:f392fc9709a3 2 ******************************************************************************
AnnaBridge 189:f392fc9709a3 3 * @file stm32h7xx_hal_comp.h
AnnaBridge 189:f392fc9709a3 4 * @author MCD Application Team
AnnaBridge 189:f392fc9709a3 5 * @brief Header file of COMP HAL module.
AnnaBridge 189:f392fc9709a3 6 ******************************************************************************
AnnaBridge 189:f392fc9709a3 7 * @attention
AnnaBridge 189:f392fc9709a3 8 *
AnnaBridge 189:f392fc9709a3 9 * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
AnnaBridge 189:f392fc9709a3 10 * All rights reserved.</center></h2>
AnnaBridge 189:f392fc9709a3 11 *
AnnaBridge 189:f392fc9709a3 12 * This software component is licensed by ST under BSD 3-Clause license,
AnnaBridge 189:f392fc9709a3 13 * the "License"; You may not use this file except in compliance with the
AnnaBridge 189:f392fc9709a3 14 * License. You may obtain a copy of the License at:
AnnaBridge 189:f392fc9709a3 15 * opensource.org/licenses/BSD-3-Clause
AnnaBridge 189:f392fc9709a3 16 *
AnnaBridge 189:f392fc9709a3 17 ******************************************************************************
AnnaBridge 189:f392fc9709a3 18 */
AnnaBridge 189:f392fc9709a3 19
AnnaBridge 189:f392fc9709a3 20 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 189:f392fc9709a3 21 #ifndef STM32H7xx_HAL_COMP_H
AnnaBridge 189:f392fc9709a3 22 #define STM32H7xx_HAL_COMP_H
AnnaBridge 189:f392fc9709a3 23
AnnaBridge 189:f392fc9709a3 24 #ifdef __cplusplus
AnnaBridge 189:f392fc9709a3 25 extern "C" {
AnnaBridge 189:f392fc9709a3 26 #endif
AnnaBridge 189:f392fc9709a3 27
AnnaBridge 189:f392fc9709a3 28 /* Includes ------------------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 29 #include "stm32h7xx_hal_def.h"
AnnaBridge 189:f392fc9709a3 30
AnnaBridge 189:f392fc9709a3 31 /** @addtogroup STM32H7xx_HAL_Driver
AnnaBridge 189:f392fc9709a3 32 * @{
AnnaBridge 189:f392fc9709a3 33 */
AnnaBridge 189:f392fc9709a3 34
AnnaBridge 189:f392fc9709a3 35 /** @addtogroup COMP
AnnaBridge 189:f392fc9709a3 36 * @{
AnnaBridge 189:f392fc9709a3 37 */
AnnaBridge 189:f392fc9709a3 38
AnnaBridge 189:f392fc9709a3 39 /* Exported types ------------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 40 /** @defgroup COMP_Exported_Types COMP Exported Types
AnnaBridge 189:f392fc9709a3 41 * @{
AnnaBridge 189:f392fc9709a3 42 */
AnnaBridge 189:f392fc9709a3 43
AnnaBridge 189:f392fc9709a3 44 /**
AnnaBridge 189:f392fc9709a3 45 * @brief COMP Init structure definition
AnnaBridge 189:f392fc9709a3 46 */
AnnaBridge 189:f392fc9709a3 47 typedef struct
AnnaBridge 189:f392fc9709a3 48 {
AnnaBridge 189:f392fc9709a3 49
AnnaBridge 189:f392fc9709a3 50 uint32_t WindowMode; /*!< Set window mode of a pair of comparators instances
AnnaBridge 189:f392fc9709a3 51 (2 consecutive instances odd and even COMP<x> and COMP<x+1>).
AnnaBridge 189:f392fc9709a3 52 Note: HAL COMP driver allows to set window mode from any COMP instance of the pair of COMP instances composing window mode.
AnnaBridge 189:f392fc9709a3 53 This parameter can be a value of @ref COMP_WindowMode */
AnnaBridge 189:f392fc9709a3 54
AnnaBridge 189:f392fc9709a3 55 uint32_t Mode; /*!< Set comparator operating mode to adjust power and speed.
AnnaBridge 189:f392fc9709a3 56 Note: For the characteritics of comparator power modes
AnnaBridge 189:f392fc9709a3 57 (propagation delay and power consumption), refer to device datasheet.
AnnaBridge 189:f392fc9709a3 58 This parameter can be a value of @ref COMP_PowerMode */
AnnaBridge 189:f392fc9709a3 59
AnnaBridge 189:f392fc9709a3 60 uint32_t NonInvertingInput; /*!< Set comparator input plus (non-inverting input).
AnnaBridge 189:f392fc9709a3 61 This parameter can be a value of @ref COMP_InputPlus */
AnnaBridge 189:f392fc9709a3 62
AnnaBridge 189:f392fc9709a3 63 uint32_t InvertingInput; /*!< Set comparator input minus (inverting input).
AnnaBridge 189:f392fc9709a3 64 This parameter can be a value of @ref COMP_InputMinus */
AnnaBridge 189:f392fc9709a3 65
AnnaBridge 189:f392fc9709a3 66 uint32_t Hysteresis; /*!< Set comparator hysteresis mode of the input minus.
AnnaBridge 189:f392fc9709a3 67 This parameter can be a value of @ref COMP_Hysteresis */
AnnaBridge 189:f392fc9709a3 68
AnnaBridge 189:f392fc9709a3 69 uint32_t OutputPol; /*!< Set comparator output polarity.
AnnaBridge 189:f392fc9709a3 70 This parameter can be a value of @ref COMP_OutputPolarity */
AnnaBridge 189:f392fc9709a3 71
AnnaBridge 189:f392fc9709a3 72 uint32_t BlankingSrce; /*!< Set comparator blanking source.
AnnaBridge 189:f392fc9709a3 73 This parameter can be a value of @ref COMP_BlankingSrce */
AnnaBridge 189:f392fc9709a3 74
AnnaBridge 189:f392fc9709a3 75 uint32_t TriggerMode; /*!< Set the comparator output triggering External Interrupt Line (EXTI).
AnnaBridge 189:f392fc9709a3 76 This parameter can be a value of @ref COMP_EXTI_TriggerMode */
AnnaBridge 189:f392fc9709a3 77
AnnaBridge 189:f392fc9709a3 78 }COMP_InitTypeDef;
AnnaBridge 189:f392fc9709a3 79
AnnaBridge 189:f392fc9709a3 80 /**
AnnaBridge 189:f392fc9709a3 81 * @brief HAL COMP state machine: HAL COMP states definition
AnnaBridge 189:f392fc9709a3 82 */
AnnaBridge 189:f392fc9709a3 83 #define COMP_STATE_BITFIELD_LOCK ((uint32_t)0x10)
AnnaBridge 189:f392fc9709a3 84 typedef enum
AnnaBridge 189:f392fc9709a3 85 {
AnnaBridge 189:f392fc9709a3 86 HAL_COMP_STATE_RESET = 0x00, /*!< COMP not yet initialized */
AnnaBridge 189:f392fc9709a3 87 HAL_COMP_STATE_RESET_LOCKED = (HAL_COMP_STATE_RESET | COMP_STATE_BITFIELD_LOCK), /*!< COMP not yet initialized and configuration is locked */
AnnaBridge 189:f392fc9709a3 88 HAL_COMP_STATE_READY = 0x01, /*!< COMP initialized and ready for use */
AnnaBridge 189:f392fc9709a3 89 HAL_COMP_STATE_READY_LOCKED = (HAL_COMP_STATE_READY | COMP_STATE_BITFIELD_LOCK), /*!< COMP initialized but configuration is locked */
AnnaBridge 189:f392fc9709a3 90 HAL_COMP_STATE_BUSY = 0x02, /*!< COMP is running */
AnnaBridge 189:f392fc9709a3 91 HAL_COMP_STATE_BUSY_LOCKED = (HAL_COMP_STATE_BUSY | COMP_STATE_BITFIELD_LOCK) /*!< COMP is running and configuration is locked */
AnnaBridge 189:f392fc9709a3 92 }HAL_COMP_StateTypeDef;
AnnaBridge 189:f392fc9709a3 93
AnnaBridge 189:f392fc9709a3 94 /**
AnnaBridge 189:f392fc9709a3 95 * @brief COMP Handle Structure definition
AnnaBridge 189:f392fc9709a3 96 */
AnnaBridge 189:f392fc9709a3 97 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1)
AnnaBridge 189:f392fc9709a3 98 typedef struct __COMP_HandleTypeDef
AnnaBridge 189:f392fc9709a3 99 #else
AnnaBridge 189:f392fc9709a3 100 typedef struct
AnnaBridge 189:f392fc9709a3 101 #endif /* USE_HAL_COMP_REGISTER_CALLBACKS */
AnnaBridge 189:f392fc9709a3 102 {
AnnaBridge 189:f392fc9709a3 103 COMP_TypeDef *Instance; /*!< Register base address */
AnnaBridge 189:f392fc9709a3 104 COMP_InitTypeDef Init; /*!< COMP required parameters */
AnnaBridge 189:f392fc9709a3 105 HAL_LockTypeDef Lock; /*!< Locking object */
AnnaBridge 189:f392fc9709a3 106 __IO HAL_COMP_StateTypeDef State; /*!< COMP communication state */
AnnaBridge 189:f392fc9709a3 107 __IO uint32_t ErrorCode; /*!< COMP error code */
AnnaBridge 189:f392fc9709a3 108 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1)
AnnaBridge 189:f392fc9709a3 109 void (* TriggerCallback)(struct __COMP_HandleTypeDef *hcomp); /*!< COMP trigger callback */
AnnaBridge 189:f392fc9709a3 110 void (* MspInitCallback)(struct __COMP_HandleTypeDef *hcomp); /*!< COMP Msp Init callback */
AnnaBridge 189:f392fc9709a3 111 void (* MspDeInitCallback)(struct __COMP_HandleTypeDef *hcomp); /*!< COMP Msp DeInit callback */
AnnaBridge 189:f392fc9709a3 112 #endif /* USE_HAL_COMP_REGISTER_CALLBACKS */
AnnaBridge 189:f392fc9709a3 113
AnnaBridge 189:f392fc9709a3 114 } COMP_HandleTypeDef;
AnnaBridge 189:f392fc9709a3 115
AnnaBridge 189:f392fc9709a3 116 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1)
AnnaBridge 189:f392fc9709a3 117 /**
AnnaBridge 189:f392fc9709a3 118 * @brief HAL COMP Callback ID enumeration definition
AnnaBridge 189:f392fc9709a3 119 */
AnnaBridge 189:f392fc9709a3 120 typedef enum
AnnaBridge 189:f392fc9709a3 121 {
AnnaBridge 189:f392fc9709a3 122 HAL_COMP_TRIGGER_CB_ID = 0x00U, /*!< COMP trigger callback ID */
AnnaBridge 189:f392fc9709a3 123 HAL_COMP_MSPINIT_CB_ID = 0x01U, /*!< COMP Msp Init callback ID */
AnnaBridge 189:f392fc9709a3 124 HAL_COMP_MSPDEINIT_CB_ID = 0x02U /*!< COMP Msp DeInit callback ID */
AnnaBridge 189:f392fc9709a3 125 } HAL_COMP_CallbackIDTypeDef;
AnnaBridge 189:f392fc9709a3 126
AnnaBridge 189:f392fc9709a3 127 /**
AnnaBridge 189:f392fc9709a3 128 * @brief HAL COMP Callback pointer definition
AnnaBridge 189:f392fc9709a3 129 */
AnnaBridge 189:f392fc9709a3 130 typedef void (*pCOMP_CallbackTypeDef)(COMP_HandleTypeDef *hcomp); /*!< pointer to a COMP callback function */
AnnaBridge 189:f392fc9709a3 131
AnnaBridge 189:f392fc9709a3 132 #endif /* USE_HAL_COMP_REGISTER_CALLBACKS */
AnnaBridge 189:f392fc9709a3 133 /**
AnnaBridge 189:f392fc9709a3 134 * @}
AnnaBridge 189:f392fc9709a3 135 */
AnnaBridge 189:f392fc9709a3 136
AnnaBridge 189:f392fc9709a3 137 /* Exported constants --------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 138 /** @defgroup COMP_Exported_Constants COMP Exported Constants
AnnaBridge 189:f392fc9709a3 139 * @{
AnnaBridge 189:f392fc9709a3 140 */
AnnaBridge 189:f392fc9709a3 141
AnnaBridge 189:f392fc9709a3 142 /** @defgroup COMP_Error_Code COMP Error Code
AnnaBridge 189:f392fc9709a3 143 * @{
AnnaBridge 189:f392fc9709a3 144 */
AnnaBridge 189:f392fc9709a3 145 #define HAL_COMP_ERROR_NONE (0x00U) /*!< No error */
AnnaBridge 189:f392fc9709a3 146 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1)
AnnaBridge 189:f392fc9709a3 147 #define HAL_COMP_ERROR_INVALID_CALLBACK (0x01U) /*!< Invalid Callback error */
AnnaBridge 189:f392fc9709a3 148 #endif /* USE_HAL_COMP_REGISTER_CALLBACKS */
AnnaBridge 189:f392fc9709a3 149 /**
AnnaBridge 189:f392fc9709a3 150 * @}
AnnaBridge 189:f392fc9709a3 151 */
AnnaBridge 189:f392fc9709a3 152
AnnaBridge 189:f392fc9709a3 153 /** @defgroup COMP_WindowMode COMP Window Mode
AnnaBridge 189:f392fc9709a3 154 * @{
AnnaBridge 189:f392fc9709a3 155 */
AnnaBridge 189:f392fc9709a3 156 #define COMP_WINDOWMODE_DISABLE ((uint32_t)0x00000000) /*!< Window mode disable: Comparators instances pair COMP1 and COMP2 are independent */
AnnaBridge 189:f392fc9709a3 157 #define COMP_WINDOWMODE_COMP1_INPUT_PLUS_COMMON (COMP_CFGRx_WINMODE) /*!< Window mode enable: Comparators instances pair COMP1 and COMP2 have their input plus connected together. The common input is COMP1 input plus (COMP2 input plus is no more accessible). */
AnnaBridge 189:f392fc9709a3 158
AnnaBridge 189:f392fc9709a3 159 /**
AnnaBridge 189:f392fc9709a3 160 * @}
AnnaBridge 189:f392fc9709a3 161 */
AnnaBridge 189:f392fc9709a3 162
AnnaBridge 189:f392fc9709a3 163 /** @defgroup COMP_PowerMode COMP power mode
AnnaBridge 189:f392fc9709a3 164 * @{
AnnaBridge 189:f392fc9709a3 165 */
AnnaBridge 189:f392fc9709a3 166 /* Note: For the characteritics of comparator power modes */
AnnaBridge 189:f392fc9709a3 167 /* (propagation delay and power consumption), */
AnnaBridge 189:f392fc9709a3 168 /* refer to device datasheet. */
AnnaBridge 189:f392fc9709a3 169 #define COMP_POWERMODE_HIGHSPEED ((uint32_t)0x00000000) /*!< High Speed */
AnnaBridge 189:f392fc9709a3 170 #define COMP_POWERMODE_MEDIUMSPEED (COMP_CFGRx_PWRMODE_0) /*!< Medium Speed */
AnnaBridge 189:f392fc9709a3 171 #define COMP_POWERMODE_ULTRALOWPOWER (COMP_CFGRx_PWRMODE) /*!< Ultra-low power mode */
AnnaBridge 189:f392fc9709a3 172 /**
AnnaBridge 189:f392fc9709a3 173 * @}
AnnaBridge 189:f392fc9709a3 174 */
AnnaBridge 189:f392fc9709a3 175
AnnaBridge 189:f392fc9709a3 176 /** @defgroup COMP_InputPlus COMP input plus (non-inverting input)
AnnaBridge 189:f392fc9709a3 177 * @{
AnnaBridge 189:f392fc9709a3 178 */
AnnaBridge 189:f392fc9709a3 179 #define COMP_INPUT_PLUS_IO1 ((uint32_t)0x00000000) /*!< Comparator input plus connected to IO1 (pin PB0 for COMP1, pin PE9 for COMP2) */
AnnaBridge 189:f392fc9709a3 180 #define COMP_INPUT_PLUS_IO2 (COMP_CFGRx_INPSEL) /*!< Comparator input plus connected to IO2 (pin PB2 for COMP1, pin PE11 for COMP2) */
AnnaBridge 189:f392fc9709a3 181 /**
AnnaBridge 189:f392fc9709a3 182 * @}
AnnaBridge 189:f392fc9709a3 183 */
AnnaBridge 189:f392fc9709a3 184
AnnaBridge 189:f392fc9709a3 185 /** @defgroup COMP_InputMinus COMP input minus (inverting input)
AnnaBridge 189:f392fc9709a3 186 * @{
AnnaBridge 189:f392fc9709a3 187 */
AnnaBridge 189:f392fc9709a3 188 #define COMP_INPUT_MINUS_1_4VREFINT ( COMP_CFGRx_SCALEN | COMP_CFGRx_BRGEN) /*!< Comparator input minus connected to 1/4 VrefInt */
AnnaBridge 189:f392fc9709a3 189 #define COMP_INPUT_MINUS_1_2VREFINT ( COMP_CFGRx_INMSEL_0 | COMP_CFGRx_SCALEN | COMP_CFGRx_BRGEN) /*!< Comparator input minus connected to 1/2 VrefInt */
AnnaBridge 189:f392fc9709a3 190 #define COMP_INPUT_MINUS_3_4VREFINT ( COMP_CFGRx_INMSEL_1 | COMP_CFGRx_SCALEN | COMP_CFGRx_BRGEN) /*!< Comparator input minus connected to 3/4 VrefInt */
AnnaBridge 189:f392fc9709a3 191 #define COMP_INPUT_MINUS_VREFINT ( COMP_CFGRx_INMSEL_1 | COMP_CFGRx_INMSEL_0 | COMP_CFGRx_SCALEN ) /*!< Comparator input minus connected to VrefInt */
AnnaBridge 189:f392fc9709a3 192 #define COMP_INPUT_MINUS_DAC1_CH1 (COMP_CFGRx_INMSEL_2 ) /*!< Comparator input minus connected to DAC1 channel 1 (DAC_OUT1) */
AnnaBridge 189:f392fc9709a3 193 #define COMP_INPUT_MINUS_DAC1_CH2 (COMP_CFGRx_INMSEL_2 | COMP_CFGRx_INMSEL_0) /*!< Comparator input minus connected to DAC1 channel 2 (DAC_OUT2) */
AnnaBridge 189:f392fc9709a3 194 #define COMP_INPUT_MINUS_IO1 (COMP_CFGRx_INMSEL_2 | COMP_CFGRx_INMSEL_1 ) /*!< Comparator input minus connected to IO1 (pin PB1 for COMP1, pin PE10 for COMP2) */
AnnaBridge 189:f392fc9709a3 195 #define COMP_INPUT_MINUS_IO2 (COMP_CFGRx_INMSEL_2 | COMP_CFGRx_INMSEL_1 | COMP_CFGRx_INMSEL_0) /*!< Comparator input minus connected to IO2 (pin PC4 for COMP1, pin PE7 for COMP2) */
AnnaBridge 189:f392fc9709a3 196 /**
AnnaBridge 189:f392fc9709a3 197 * @}
AnnaBridge 189:f392fc9709a3 198 */
AnnaBridge 189:f392fc9709a3 199
AnnaBridge 189:f392fc9709a3 200 /** @defgroup COMP_Hysteresis COMP hysteresis
AnnaBridge 189:f392fc9709a3 201 * @{
AnnaBridge 189:f392fc9709a3 202 */
AnnaBridge 189:f392fc9709a3 203 #define COMP_HYSTERESIS_NONE ((uint32_t)0x00000000) /*!< No hysteresis */
AnnaBridge 189:f392fc9709a3 204 #define COMP_HYSTERESIS_LOW (COMP_CFGRx_HYST_0) /*!< Hysteresis level low */
AnnaBridge 189:f392fc9709a3 205 #define COMP_HYSTERESIS_MEDIUM (COMP_CFGRx_HYST_1) /*!< Hysteresis level medium */
AnnaBridge 189:f392fc9709a3 206 #define COMP_HYSTERESIS_HIGH (COMP_CFGRx_HYST) /*!< Hysteresis level high */
AnnaBridge 189:f392fc9709a3 207 /**
AnnaBridge 189:f392fc9709a3 208 * @}
AnnaBridge 189:f392fc9709a3 209 */
AnnaBridge 189:f392fc9709a3 210
AnnaBridge 189:f392fc9709a3 211 /** @defgroup COMP_OutputPolarity COMP Output Polarity
AnnaBridge 189:f392fc9709a3 212 * @{
AnnaBridge 189:f392fc9709a3 213 */
AnnaBridge 189:f392fc9709a3 214 #define COMP_OUTPUTPOL_NONINVERTED ((uint32_t)0x00000000) /*!< COMP output level is not inverted (comparator output is high when the input plus is at a higher voltage than the input minus) */
AnnaBridge 189:f392fc9709a3 215 #define COMP_OUTPUTPOL_INVERTED (COMP_CFGRx_POLARITY) /*!< COMP output level is inverted (comparator output is low when the input plus is at a higher voltage than the input minus) */
AnnaBridge 189:f392fc9709a3 216 /**
AnnaBridge 189:f392fc9709a3 217 * @}
AnnaBridge 189:f392fc9709a3 218 */
AnnaBridge 189:f392fc9709a3 219
AnnaBridge 189:f392fc9709a3 220
AnnaBridge 189:f392fc9709a3 221 /** @defgroup COMP_BlankingSrce COMP Blanking Source
AnnaBridge 189:f392fc9709a3 222 * @{
AnnaBridge 189:f392fc9709a3 223 */
AnnaBridge 189:f392fc9709a3 224 /* Any blanking source can be selected for all comparators */
AnnaBridge 189:f392fc9709a3 225 #define COMP_BLANKINGSRC_NONE ((uint32_t)0x00000000) /*!< No blanking source */
AnnaBridge 189:f392fc9709a3 226 #define COMP_BLANKINGSRC_TIM1_OC5 (COMP_CFGRx_BLANKING_0) /*!< TIM1 OC5 selected as blanking source for comparator */
AnnaBridge 189:f392fc9709a3 227 #define COMP_BLANKINGSRC_TIM2_OC3 (COMP_CFGRx_BLANKING_1) /*!< TIM2 OC3 selected as blanking source for comparator */
AnnaBridge 189:f392fc9709a3 228 #define COMP_BLANKINGSRC_TIM3_OC3 (COMP_CFGRx_BLANKING_0 |COMP_CFGRx_BLANKING_1) /*!< TIM3 OC3 selected as blanking source for compartor */
AnnaBridge 189:f392fc9709a3 229 #define COMP_BLANKINGSRC_TIM3_OC4 (COMP_CFGRx_BLANKING_2) /*!< TIM3 OC4 selected as blanking source for comparator */
AnnaBridge 189:f392fc9709a3 230 #define COMP_BLANKINGSRC_TIM8_OC5 (COMP_CFGRx_BLANKING_2|COMP_CFGRx_BLANKING_0) /*!< TIM8 OC5 selected as blanking source for comparator */
AnnaBridge 189:f392fc9709a3 231 #define COMP_BLANKINGSRC_TIM15_OC1 (COMP_CFGRx_BLANKING_2|COMP_CFGRx_BLANKING_1) /*!< TIM15 OC1 selected as blanking source for comparator */
AnnaBridge 189:f392fc9709a3 232 /**
AnnaBridge 189:f392fc9709a3 233 * @}
AnnaBridge 189:f392fc9709a3 234 */
AnnaBridge 189:f392fc9709a3 235
AnnaBridge 189:f392fc9709a3 236
AnnaBridge 189:f392fc9709a3 237
AnnaBridge 189:f392fc9709a3 238
AnnaBridge 189:f392fc9709a3 239 /** @defgroup COMP_OutputLevel COMP Output Level
AnnaBridge 189:f392fc9709a3 240 * @{
AnnaBridge 189:f392fc9709a3 241 */
AnnaBridge 189:f392fc9709a3 242
AnnaBridge 189:f392fc9709a3 243 /* Note: Comparator output level values are fixed to "0" and "1", */
AnnaBridge 189:f392fc9709a3 244 /* corresponding COMP register bit is managed by HAL function to match */
AnnaBridge 189:f392fc9709a3 245 /* with these values (independently of bit position in register). */
AnnaBridge 189:f392fc9709a3 246
AnnaBridge 189:f392fc9709a3 247 /* When output polarity is not inverted, comparator output is low when
AnnaBridge 189:f392fc9709a3 248 the input plus is at a lower voltage than the input minus */
AnnaBridge 189:f392fc9709a3 249 #define COMP_OUTPUT_LEVEL_LOW ((uint32_t)0x00000000)
AnnaBridge 189:f392fc9709a3 250 /* When output polarity is not inverted, comparator output is high when
AnnaBridge 189:f392fc9709a3 251 the input plus is at a higher voltage than the input minus */
AnnaBridge 189:f392fc9709a3 252 #define COMP_OUTPUT_LEVEL_HIGH ((uint32_t)0x00000001)
AnnaBridge 189:f392fc9709a3 253
AnnaBridge 189:f392fc9709a3 254 /**
AnnaBridge 189:f392fc9709a3 255 * @}
AnnaBridge 189:f392fc9709a3 256 */
AnnaBridge 189:f392fc9709a3 257
AnnaBridge 189:f392fc9709a3 258 /** @defgroup COMP_EXTI_TriggerMode COMP output to EXTI
AnnaBridge 189:f392fc9709a3 259 * @{
AnnaBridge 189:f392fc9709a3 260 */
AnnaBridge 189:f392fc9709a3 261 #define COMP_TRIGGERMODE_NONE ((uint32_t)0x00000000) /*!< Comparator output triggering no External Interrupt Line */
AnnaBridge 189:f392fc9709a3 262 #define COMP_TRIGGERMODE_IT_RISING (COMP_EXTI_IT | COMP_EXTI_RISING) /*!< Comparator output triggering External Interrupt Line event with interruption, on rising edge */
AnnaBridge 189:f392fc9709a3 263 #define COMP_TRIGGERMODE_IT_FALLING (COMP_EXTI_IT | COMP_EXTI_FALLING) /*!< Comparator output triggering External Interrupt Line event with interruption, on falling edge */
AnnaBridge 189:f392fc9709a3 264 #define COMP_TRIGGERMODE_IT_RISING_FALLING (COMP_EXTI_IT | COMP_EXTI_RISING | COMP_EXTI_FALLING) /*!< Comparator output triggering External Interrupt Line event with interruption, on both rising and falling edges */
AnnaBridge 189:f392fc9709a3 265 #define COMP_TRIGGERMODE_EVENT_RISING (COMP_EXTI_EVENT | COMP_EXTI_RISING) /*!< Comparator output triggering External Interrupt Line event only (without interruption), on rising edge */
AnnaBridge 189:f392fc9709a3 266 #define COMP_TRIGGERMODE_EVENT_FALLING (COMP_EXTI_EVENT | COMP_EXTI_FALLING) /*!< Comparator output triggering External Interrupt Line event only (without interruption), on falling edge */
AnnaBridge 189:f392fc9709a3 267 #define COMP_TRIGGERMODE_EVENT_RISING_FALLING (COMP_EXTI_EVENT | COMP_EXTI_RISING | COMP_EXTI_FALLING) /*!< Comparator output triggering External Interrupt Line event only (without interruption), on both rising and falling edges */
AnnaBridge 189:f392fc9709a3 268
AnnaBridge 189:f392fc9709a3 269 /**
AnnaBridge 189:f392fc9709a3 270 * @}
AnnaBridge 189:f392fc9709a3 271 */
AnnaBridge 189:f392fc9709a3 272
AnnaBridge 189:f392fc9709a3 273 /** @defgroup COMP_Flag COMP Flag
AnnaBridge 189:f392fc9709a3 274 * @{
AnnaBridge 189:f392fc9709a3 275 */
AnnaBridge 189:f392fc9709a3 276 #define COMP_FLAG_C1I COMP_SR_C1IF /*!< Comparator 1 Interrupt Flag */
AnnaBridge 189:f392fc9709a3 277 #define COMP_FLAG_C2I COMP_SR_C2IF /*!< Comparator 2 Interrupt Flag */
AnnaBridge 189:f392fc9709a3 278 #define COMP_FLAG_LOCK COMP_CFGRx_LOCK /*!< Lock flag */
AnnaBridge 189:f392fc9709a3 279 /**
AnnaBridge 189:f392fc9709a3 280 * @}
AnnaBridge 189:f392fc9709a3 281 */
AnnaBridge 189:f392fc9709a3 282 /** @defgroup COMP_IT_CLEAR_Flags COMP Interruption Clear Flags
AnnaBridge 189:f392fc9709a3 283 * @{
AnnaBridge 189:f392fc9709a3 284 */
AnnaBridge 189:f392fc9709a3 285 #define COMP_CLEAR_C1IF COMP_ICFR_C1IF /*!< Clear Comparator 1 Interrupt Flag */
AnnaBridge 189:f392fc9709a3 286 #define COMP_CLEAR_C2IF COMP_ICFR_C2IF /*!< Clear Comparator 2 Interrupt Flag */
AnnaBridge 189:f392fc9709a3 287 /**
AnnaBridge 189:f392fc9709a3 288 * @}
AnnaBridge 189:f392fc9709a3 289 */
AnnaBridge 189:f392fc9709a3 290 /** @defgroup COMP_Interrupts_Definitions COMP Interrupts Definitions
AnnaBridge 189:f392fc9709a3 291 * @{
AnnaBridge 189:f392fc9709a3 292 */
AnnaBridge 189:f392fc9709a3 293 #define COMP_IT_EN COMP_CFGRx_ITEN
AnnaBridge 189:f392fc9709a3 294
AnnaBridge 189:f392fc9709a3 295 /**
AnnaBridge 189:f392fc9709a3 296 * @}
AnnaBridge 189:f392fc9709a3 297 */
AnnaBridge 189:f392fc9709a3 298
AnnaBridge 189:f392fc9709a3 299
AnnaBridge 189:f392fc9709a3 300 /**
AnnaBridge 189:f392fc9709a3 301 * @}
AnnaBridge 189:f392fc9709a3 302 */
AnnaBridge 189:f392fc9709a3 303
AnnaBridge 189:f392fc9709a3 304 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 305 /** @defgroup COMP_Exported_Macros COMP Exported Macros
AnnaBridge 189:f392fc9709a3 306 * @{
AnnaBridge 189:f392fc9709a3 307 */
AnnaBridge 189:f392fc9709a3 308 /** @defgroup COMP_Handle_Management COMP Handle Management
AnnaBridge 189:f392fc9709a3 309 * @{
AnnaBridge 189:f392fc9709a3 310 */
AnnaBridge 189:f392fc9709a3 311
AnnaBridge 189:f392fc9709a3 312 /** @brief Reset COMP handle state.
AnnaBridge 189:f392fc9709a3 313 * @param __HANDLE__ COMP handle
AnnaBridge 189:f392fc9709a3 314 * @retval None
AnnaBridge 189:f392fc9709a3 315 */
AnnaBridge 189:f392fc9709a3 316 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1)
AnnaBridge 189:f392fc9709a3 317 #define __HAL_COMP_RESET_HANDLE_STATE(__HANDLE__) do{ \
AnnaBridge 189:f392fc9709a3 318 (__HANDLE__)->State = HAL_COMP_STATE_RESET; \
AnnaBridge 189:f392fc9709a3 319 (__HANDLE__)->MspInitCallback = NULL; \
AnnaBridge 189:f392fc9709a3 320 (__HANDLE__)->MspDeInitCallback = NULL; \
AnnaBridge 189:f392fc9709a3 321 } while(0)
AnnaBridge 189:f392fc9709a3 322 #else
AnnaBridge 189:f392fc9709a3 323 #define __HAL_COMP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_COMP_STATE_RESET)
AnnaBridge 189:f392fc9709a3 324 #endif
AnnaBridge 189:f392fc9709a3 325
AnnaBridge 189:f392fc9709a3 326 /**
AnnaBridge 189:f392fc9709a3 327 * @brief Clear COMP error code (set it to no error code "HAL_COMP_ERROR_NONE").
AnnaBridge 189:f392fc9709a3 328 * @param __HANDLE__ COMP handle
AnnaBridge 189:f392fc9709a3 329 * @retval None
AnnaBridge 189:f392fc9709a3 330 */
AnnaBridge 189:f392fc9709a3 331 #define COMP_CLEAR_ERRORCODE(__HANDLE__) ((__HANDLE__)->ErrorCode = HAL_COMP_ERROR_NONE)
AnnaBridge 189:f392fc9709a3 332
AnnaBridge 189:f392fc9709a3 333 /**
AnnaBridge 189:f392fc9709a3 334 * @brief Enable the specified comparator.
AnnaBridge 189:f392fc9709a3 335 * @param __HANDLE__ COMP handle
AnnaBridge 189:f392fc9709a3 336 * @retval None
AnnaBridge 189:f392fc9709a3 337 */
AnnaBridge 189:f392fc9709a3 338 #define __HAL_COMP_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CFGR, COMP_CFGRx_EN)
AnnaBridge 189:f392fc9709a3 339
AnnaBridge 189:f392fc9709a3 340 /**
AnnaBridge 189:f392fc9709a3 341 * @brief Disable the specified comparator.
AnnaBridge 189:f392fc9709a3 342 * @param __HANDLE__ COMP handle
AnnaBridge 189:f392fc9709a3 343 * @retval None
AnnaBridge 189:f392fc9709a3 344 */
AnnaBridge 189:f392fc9709a3 345 #define __HAL_COMP_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CFGR, COMP_CFGRx_EN)
AnnaBridge 189:f392fc9709a3 346
AnnaBridge 189:f392fc9709a3 347 /**
AnnaBridge 189:f392fc9709a3 348 * @brief Lock the specified comparator configuration.
AnnaBridge 189:f392fc9709a3 349 * @note Using this macro induce HAL COMP handle state machine being no
AnnaBridge 189:f392fc9709a3 350 * more in line with COMP instance state.
AnnaBridge 189:f392fc9709a3 351 * To keep HAL COMP handle state machine updated, it is recommended
AnnaBridge 189:f392fc9709a3 352 * to use function "HAL_COMP_Lock')".
AnnaBridge 189:f392fc9709a3 353 * @param __HANDLE__ COMP handle
AnnaBridge 189:f392fc9709a3 354 * @retval None
AnnaBridge 189:f392fc9709a3 355 */
AnnaBridge 189:f392fc9709a3 356 #define __HAL_COMP_LOCK(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CFGR, COMP_CFGRx_LOCK)
AnnaBridge 189:f392fc9709a3 357
AnnaBridge 189:f392fc9709a3 358 /**
AnnaBridge 189:f392fc9709a3 359 * @brief Check whether the specified comparator is locked.
AnnaBridge 189:f392fc9709a3 360 * @param __HANDLE__ COMP handle
AnnaBridge 189:f392fc9709a3 361 * @retval Value 0 if COMP instance is not locked, value 1 if COMP instance is locked
AnnaBridge 189:f392fc9709a3 362 */
AnnaBridge 189:f392fc9709a3 363 #define __HAL_COMP_IS_LOCKED(__HANDLE__) (READ_BIT((__HANDLE__)->Instance->CFGR, COMP_CFGRx_LOCK) == COMP_CFGRx_LOCK)
AnnaBridge 189:f392fc9709a3 364
AnnaBridge 189:f392fc9709a3 365 /**
AnnaBridge 189:f392fc9709a3 366 * @}
AnnaBridge 189:f392fc9709a3 367 */
AnnaBridge 189:f392fc9709a3 368
AnnaBridge 189:f392fc9709a3 369 /** @defgroup COMP_Exti_Management COMP external interrupt line management
AnnaBridge 189:f392fc9709a3 370 * @{
AnnaBridge 189:f392fc9709a3 371 */
AnnaBridge 189:f392fc9709a3 372
AnnaBridge 189:f392fc9709a3 373 /**
AnnaBridge 189:f392fc9709a3 374 * @brief Enable the COMP1 EXTI line rising edge trigger.
AnnaBridge 189:f392fc9709a3 375 * @retval None
AnnaBridge 189:f392fc9709a3 376 */
AnnaBridge 189:f392fc9709a3 377 #define __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 378
AnnaBridge 189:f392fc9709a3 379
AnnaBridge 189:f392fc9709a3 380 /**
AnnaBridge 189:f392fc9709a3 381 * @brief Disable the COMP1 EXTI line rising edge trigger.
AnnaBridge 189:f392fc9709a3 382 * @retval None
AnnaBridge 189:f392fc9709a3 383 */
AnnaBridge 189:f392fc9709a3 384 #define __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 385
AnnaBridge 189:f392fc9709a3 386 /**
AnnaBridge 189:f392fc9709a3 387 * @brief Enable the COMP1 EXTI line falling edge trigger.
AnnaBridge 189:f392fc9709a3 388 * @retval None
AnnaBridge 189:f392fc9709a3 389 */
AnnaBridge 189:f392fc9709a3 390 #define __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 391
AnnaBridge 189:f392fc9709a3 392 /**
AnnaBridge 189:f392fc9709a3 393 * @brief Disable the COMP1 EXTI line falling edge trigger.
AnnaBridge 189:f392fc9709a3 394 * @retval None
AnnaBridge 189:f392fc9709a3 395 */
AnnaBridge 189:f392fc9709a3 396 #define __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 397
AnnaBridge 189:f392fc9709a3 398
AnnaBridge 189:f392fc9709a3 399 /**
AnnaBridge 189:f392fc9709a3 400 * @brief Enable the COMP1 EXTI line rising & falling edge trigger.
AnnaBridge 189:f392fc9709a3 401 * @retval None
AnnaBridge 189:f392fc9709a3 402 */
AnnaBridge 189:f392fc9709a3 403 #define __HAL_COMP_COMP1_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 189:f392fc9709a3 404 __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 189:f392fc9709a3 405 __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 189:f392fc9709a3 406 } while(0)
AnnaBridge 189:f392fc9709a3 407
AnnaBridge 189:f392fc9709a3 408
AnnaBridge 189:f392fc9709a3 409 /**
AnnaBridge 189:f392fc9709a3 410 * @brief Disable the COMP1 EXTI line rising & falling edge trigger.
AnnaBridge 189:f392fc9709a3 411 * @retval None
AnnaBridge 189:f392fc9709a3 412 */
AnnaBridge 189:f392fc9709a3 413 #define __HAL_COMP_COMP1_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 189:f392fc9709a3 414 __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 189:f392fc9709a3 415 __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 189:f392fc9709a3 416 } while(0)
AnnaBridge 189:f392fc9709a3 417
AnnaBridge 189:f392fc9709a3 418
AnnaBridge 189:f392fc9709a3 419 /**
AnnaBridge 189:f392fc9709a3 420 * @brief Enable the COMP1 EXTI line in interrupt mode.
AnnaBridge 189:f392fc9709a3 421 * @retval None
AnnaBridge 189:f392fc9709a3 422 */
AnnaBridge 189:f392fc9709a3 423 #define __HAL_COMP_COMP1_EXTI_ENABLE_IT() SET_BIT(EXTI_D1->IMR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 424
AnnaBridge 189:f392fc9709a3 425 /**
AnnaBridge 189:f392fc9709a3 426 * @brief Disable the COMP1 EXTI line in interrupt mode.
AnnaBridge 189:f392fc9709a3 427 * @retval None
AnnaBridge 189:f392fc9709a3 428 */
AnnaBridge 189:f392fc9709a3 429 #define __HAL_COMP_COMP1_EXTI_DISABLE_IT() CLEAR_BIT(EXTI_D1->IMR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 430
AnnaBridge 189:f392fc9709a3 431 /**
AnnaBridge 189:f392fc9709a3 432 * @brief Enable the COMP1 EXTI Line in event mode.
AnnaBridge 189:f392fc9709a3 433 * @retval None
AnnaBridge 189:f392fc9709a3 434 */
AnnaBridge 189:f392fc9709a3 435 #define __HAL_COMP_COMP1_EXTI_ENABLE_EVENT() SET_BIT(EXTI_D1->EMR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 436
AnnaBridge 189:f392fc9709a3 437 /**
AnnaBridge 189:f392fc9709a3 438 * @brief Disable the COMP1 EXTI Line in event mode.
AnnaBridge 189:f392fc9709a3 439 * @retval None
AnnaBridge 189:f392fc9709a3 440 */
AnnaBridge 189:f392fc9709a3 441 #define __HAL_COMP_COMP1_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI_D1->EMR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 442
AnnaBridge 189:f392fc9709a3 443 /**
AnnaBridge 189:f392fc9709a3 444 * @brief Check whether the COMP1 EXTI line flag is set or not.
AnnaBridge 189:f392fc9709a3 445 * @retval RESET or SET
AnnaBridge 189:f392fc9709a3 446 */
AnnaBridge 189:f392fc9709a3 447 #define __HAL_COMP_COMP1_EXTI_GET_FLAG() READ_BIT(EXTI_D1->PR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 448 /**
AnnaBridge 189:f392fc9709a3 449 * @brief Clear the COMP1 EXTI flag.
AnnaBridge 189:f392fc9709a3 450 * @retval None
AnnaBridge 189:f392fc9709a3 451 */
AnnaBridge 189:f392fc9709a3 452 #define __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() WRITE_REG(EXTI_D1->PR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 453
AnnaBridge 189:f392fc9709a3 454 /**
AnnaBridge 189:f392fc9709a3 455 * @brief Generate a software interrupt on the COMP1 EXTI line.
AnnaBridge 189:f392fc9709a3 456 * @retval None
AnnaBridge 189:f392fc9709a3 457 */
AnnaBridge 189:f392fc9709a3 458 #define __HAL_COMP_COMP1_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 459
AnnaBridge 189:f392fc9709a3 460 /**
AnnaBridge 189:f392fc9709a3 461 * @brief Enable the COMP1 D3 EXTI Line in event mode.
AnnaBridge 189:f392fc9709a3 462 * @retval None
AnnaBridge 189:f392fc9709a3 463 */
AnnaBridge 189:f392fc9709a3 464 #define __HAL_COMP_COMP1_EXTID3_ENABLE_EVENT() SET_BIT(EXTI->D3PMR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 465
AnnaBridge 189:f392fc9709a3 466 /**
AnnaBridge 189:f392fc9709a3 467 * @brief Disable the COMP1 D3 EXTI Line in event mode.
AnnaBridge 189:f392fc9709a3 468 * @retval None
AnnaBridge 189:f392fc9709a3 469 */
AnnaBridge 189:f392fc9709a3 470 #define __HAL_COMP_COMP1_EXTID3_DISABLE_EVENT() CLEAR_BIT(EXTI->D3PMR1, COMP_EXTI_LINE_COMP1)
AnnaBridge 189:f392fc9709a3 471
AnnaBridge 189:f392fc9709a3 472 /**
AnnaBridge 189:f392fc9709a3 473 * @brief Enable the COMP2 EXTI line rising edge trigger.
AnnaBridge 189:f392fc9709a3 474 * @retval None
AnnaBridge 189:f392fc9709a3 475 */
AnnaBridge 189:f392fc9709a3 476 #define __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 477
AnnaBridge 189:f392fc9709a3 478 /**
AnnaBridge 189:f392fc9709a3 479 * @brief Disable the COMP2 EXTI line rising edge trigger.
AnnaBridge 189:f392fc9709a3 480 * @retval None
AnnaBridge 189:f392fc9709a3 481 */
AnnaBridge 189:f392fc9709a3 482 #define __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 483
AnnaBridge 189:f392fc9709a3 484 /**
AnnaBridge 189:f392fc9709a3 485 * @brief Enable the COMP2 EXTI line falling edge trigger.
AnnaBridge 189:f392fc9709a3 486 * @retval None
AnnaBridge 189:f392fc9709a3 487 */
AnnaBridge 189:f392fc9709a3 488 #define __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 489
AnnaBridge 189:f392fc9709a3 490 /**
AnnaBridge 189:f392fc9709a3 491 * @brief Disable the COMP2 EXTI line falling edge trigger.
AnnaBridge 189:f392fc9709a3 492 * @retval None
AnnaBridge 189:f392fc9709a3 493 */
AnnaBridge 189:f392fc9709a3 494 #define __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 495
AnnaBridge 189:f392fc9709a3 496 /**
AnnaBridge 189:f392fc9709a3 497 * @brief Enable the COMP2 EXTI line rising & falling edge trigger.
AnnaBridge 189:f392fc9709a3 498 * @retval None
AnnaBridge 189:f392fc9709a3 499 */
AnnaBridge 189:f392fc9709a3 500 #define __HAL_COMP_COMP2_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 189:f392fc9709a3 501 __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 189:f392fc9709a3 502 __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 189:f392fc9709a3 503 } while(0)
AnnaBridge 189:f392fc9709a3 504
AnnaBridge 189:f392fc9709a3 505 /**
AnnaBridge 189:f392fc9709a3 506 * @brief Disable the COMP2 EXTI line rising & falling edge trigger.
AnnaBridge 189:f392fc9709a3 507 * @retval None
AnnaBridge 189:f392fc9709a3 508 */
AnnaBridge 189:f392fc9709a3 509 #define __HAL_COMP_COMP2_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 189:f392fc9709a3 510 __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 189:f392fc9709a3 511 __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 189:f392fc9709a3 512 } while(0)
AnnaBridge 189:f392fc9709a3 513 /**
AnnaBridge 189:f392fc9709a3 514 * @brief Enable the COMP2 EXTI line.
AnnaBridge 189:f392fc9709a3 515 * @retval None
AnnaBridge 189:f392fc9709a3 516 */
AnnaBridge 189:f392fc9709a3 517 #define __HAL_COMP_COMP2_EXTI_ENABLE_IT() SET_BIT(EXTI_D1->IMR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 518
AnnaBridge 189:f392fc9709a3 519 /**
AnnaBridge 189:f392fc9709a3 520 * @brief Disable the COMP2 EXTI line.
AnnaBridge 189:f392fc9709a3 521 * @retval None
AnnaBridge 189:f392fc9709a3 522 */
AnnaBridge 189:f392fc9709a3 523 #define __HAL_COMP_COMP2_EXTI_DISABLE_IT() CLEAR_BIT(EXTI_D1->IMR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 524
AnnaBridge 189:f392fc9709a3 525 /**
AnnaBridge 189:f392fc9709a3 526 * @brief Enable the COMP2 EXTI Line in event mode.
AnnaBridge 189:f392fc9709a3 527 * @retval None
AnnaBridge 189:f392fc9709a3 528 */
AnnaBridge 189:f392fc9709a3 529 #define __HAL_COMP_COMP2_EXTI_ENABLE_EVENT() SET_BIT(EXTI_D1->EMR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 530
AnnaBridge 189:f392fc9709a3 531 /**
AnnaBridge 189:f392fc9709a3 532 * @brief Disable the COMP2 EXTI Line in event mode.
AnnaBridge 189:f392fc9709a3 533 * @retval None
AnnaBridge 189:f392fc9709a3 534 */
AnnaBridge 189:f392fc9709a3 535 #define __HAL_COMP_COMP2_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI_D1->EMR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 536
AnnaBridge 189:f392fc9709a3 537 /**
AnnaBridge 189:f392fc9709a3 538 * @brief Check whether the COMP2 EXTI line flag is set or not.
AnnaBridge 189:f392fc9709a3 539 * @retval RESET or SET
AnnaBridge 189:f392fc9709a3 540 */
AnnaBridge 189:f392fc9709a3 541 #define __HAL_COMP_COMP2_EXTI_GET_FLAG() READ_BIT(EXTI_D1->PR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 542
AnnaBridge 189:f392fc9709a3 543 /**
AnnaBridge 189:f392fc9709a3 544 * @brief Clear the the COMP2 EXTI flag.
AnnaBridge 189:f392fc9709a3 545 * @retval None
AnnaBridge 189:f392fc9709a3 546 */
AnnaBridge 189:f392fc9709a3 547 #define __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() WRITE_REG(EXTI_D1->PR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 548
AnnaBridge 189:f392fc9709a3 549 /**
AnnaBridge 189:f392fc9709a3 550 * @brief Enable the COMP2 D3 EXTI Line in event mode.
AnnaBridge 189:f392fc9709a3 551 * @retval None
AnnaBridge 189:f392fc9709a3 552 */
AnnaBridge 189:f392fc9709a3 553 #define __HAL_COMP_COMP2_EXTID3_ENABLE_EVENT() SET_BIT(EXTI->D3PMR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 554
AnnaBridge 189:f392fc9709a3 555 /**
AnnaBridge 189:f392fc9709a3 556 * @brief Disable the COMP2 D3 EXTI Line in event mode.
AnnaBridge 189:f392fc9709a3 557 * @retval None
AnnaBridge 189:f392fc9709a3 558 */
AnnaBridge 189:f392fc9709a3 559 #define __HAL_COMP_COMP2_EXTID3_DISABLE_EVENT() CLEAR_BIT(EXTI->D3PMR1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 560
AnnaBridge 189:f392fc9709a3 561 /**
AnnaBridge 189:f392fc9709a3 562 * @brief Generate a software interrupt on the COMP2 EXTI line.
AnnaBridge 189:f392fc9709a3 563 * @retval None
AnnaBridge 189:f392fc9709a3 564 */
AnnaBridge 189:f392fc9709a3 565 #define __HAL_COMP_COMP2_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER1, COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 566
AnnaBridge 189:f392fc9709a3 567 /** @brief Checks if the specified COMP interrupt source is enabled or disabled.
AnnaBridge 189:f392fc9709a3 568 * @param __HANDLE__: specifies the COMP Handle.
AnnaBridge 189:f392fc9709a3 569 * This parameter can be COMP1 where x: 1 or 2 to select the COMP peripheral.
AnnaBridge 189:f392fc9709a3 570 * @param __INTERRUPT__: specifies the COMP interrupt source to check.
AnnaBridge 189:f392fc9709a3 571 * This parameter can be one of the following values:
AnnaBridge 189:f392fc9709a3 572 * @arg COMP_IT_EN: Comparator interrupt enable
AnnaBridge 189:f392fc9709a3 573 *
AnnaBridge 189:f392fc9709a3 574 * @retval The new state of __IT__ (TRUE or FALSE)
AnnaBridge 189:f392fc9709a3 575 */
AnnaBridge 189:f392fc9709a3 576 #define __HAL_COMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CFGR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
AnnaBridge 189:f392fc9709a3 577
AnnaBridge 189:f392fc9709a3 578 /** @brief Checks whether the specified COMP flag is set or not.
AnnaBridge 189:f392fc9709a3 579 * @param __FLAG__: specifies the flag to check.
AnnaBridge 189:f392fc9709a3 580 * This parameter can be one of the following values:
AnnaBridge 189:f392fc9709a3 581 * @arg COMP_FLAG_C1I: Comparator 1 Interrupt Flag
AnnaBridge 189:f392fc9709a3 582 * @arg COMP_FLAG_C2I: Comparator 2 Interrupt Flag
AnnaBridge 189:f392fc9709a3 583 * @retval The new state of __FLAG__ (TRUE or FALSE)
AnnaBridge 189:f392fc9709a3 584 */
AnnaBridge 189:f392fc9709a3 585 #define __HAL_COMP_GET_FLAG(__FLAG__) ((COMP12->SR & (__FLAG__)) == (__FLAG__))
AnnaBridge 189:f392fc9709a3 586
AnnaBridge 189:f392fc9709a3 587 /** @brief Clears the specified COMP pending flag.
AnnaBridge 189:f392fc9709a3 588 * @param __FLAG__: specifies the flag to check.
AnnaBridge 189:f392fc9709a3 589 * This parameter can be any combination of the following values:
AnnaBridge 189:f392fc9709a3 590 * @arg COMP_CLEAR_C1IF : Clear Comparator 1 Interrupt Flag
AnnaBridge 189:f392fc9709a3 591 * @arg COMP_CLEAR_C2IF : Clear Comparator 2 Interrupt Flag
AnnaBridge 189:f392fc9709a3 592 * @retval None
AnnaBridge 189:f392fc9709a3 593 */
AnnaBridge 189:f392fc9709a3 594 #define __HAL_COMP_CLEAR_FLAG(__FLAG__) (COMP12->ICFR = (__FLAG__))
AnnaBridge 189:f392fc9709a3 595
AnnaBridge 189:f392fc9709a3 596 /** @brief Clear the COMP C1I flag.
AnnaBridge 189:f392fc9709a3 597 * @retval None
AnnaBridge 189:f392fc9709a3 598 */
AnnaBridge 189:f392fc9709a3 599 #define __HAL_COMP_CLEAR_C1IFLAG() __HAL_COMP_CLEAR_FLAG( COMP_CLEAR_C1IF)
AnnaBridge 189:f392fc9709a3 600
AnnaBridge 189:f392fc9709a3 601 /** @brief Clear the COMP C2I flag.
AnnaBridge 189:f392fc9709a3 602 * @retval None
AnnaBridge 189:f392fc9709a3 603 */
AnnaBridge 189:f392fc9709a3 604 #define __HAL_COMP_CLEAR_C2IFLAG() __HAL_COMP_CLEAR_FLAG( COMP_CLEAR_C2IF)
AnnaBridge 189:f392fc9709a3 605
AnnaBridge 189:f392fc9709a3 606 /** @brief Enable the specified COMP interrupt.
AnnaBridge 189:f392fc9709a3 607 * @param __HANDLE__: specifies the COMP Handle.
AnnaBridge 189:f392fc9709a3 608 * @param __INTERRUPT__: specifies the COMP interrupt source to enable.
AnnaBridge 189:f392fc9709a3 609 * This parameter can be one of the following values:
AnnaBridge 189:f392fc9709a3 610 * @arg COMP_CFGRx_ITEN : Comparator interrupt
AnnaBridge 189:f392fc9709a3 611 * @retval None
AnnaBridge 189:f392fc9709a3 612 */
AnnaBridge 189:f392fc9709a3 613 #define __HAL_COMP_ENABLE_IT(__HANDLE__, __INTERRUPT__) ( ((__HANDLE__)->Instance->CFGR) |= (__INTERRUPT__) )
AnnaBridge 189:f392fc9709a3 614
AnnaBridge 189:f392fc9709a3 615 /** @brief Disable the specified COMP interrupt.
AnnaBridge 189:f392fc9709a3 616 * @param __HANDLE__: specifies the COMP Handle.
AnnaBridge 189:f392fc9709a3 617 * @param __INTERRUPT__: specifies the COMP interrupt source to enable.
AnnaBridge 189:f392fc9709a3 618 * This parameter can be one of the following values:
AnnaBridge 189:f392fc9709a3 619 * @arg COMP_CFGRx_ITEN : Comparator interrupt
AnnaBridge 189:f392fc9709a3 620 * @retval None
AnnaBridge 189:f392fc9709a3 621 */
AnnaBridge 189:f392fc9709a3 622 #define __HAL_COMP_DISABLE_IT(__HANDLE__,__INTERRUPT__) (((__HANDLE__)->Instance->CFGR) &= ~(__INTERRUPT__))
AnnaBridge 189:f392fc9709a3 623
AnnaBridge 189:f392fc9709a3 624 /**
AnnaBridge 189:f392fc9709a3 625 * @}
AnnaBridge 189:f392fc9709a3 626 */
AnnaBridge 189:f392fc9709a3 627 /** @brief Enable the specified bit in the Option register.
AnnaBridge 189:f392fc9709a3 628 * @param __AF__: specifies the Alternate Function source selection .
AnnaBridge 189:f392fc9709a3 629 * This parameter can be one of the following values:
AnnaBridge 189:f392fc9709a3 630 * @arg COMP_OR_AFOPA6 : Alternate Function PA6 source selection
AnnaBridge 189:f392fc9709a3 631 * @arg COMP_OR_AFOPA8 : Alternate Function PA8 source selection
AnnaBridge 189:f392fc9709a3 632 * @arg COMP_OR_AFOPB12 : Alternate Function PB12 source selection
AnnaBridge 189:f392fc9709a3 633 * @arg COMP_OR_AFOPE6 : Alternate Function PE6 source selection
AnnaBridge 189:f392fc9709a3 634 * @arg COMP_OR_AFOPE15 : Alternate Function PE15 source selection
AnnaBridge 189:f392fc9709a3 635 * @arg COMP_OR_AFOPG2 : Alternate Function PG2 source selection
AnnaBridge 189:f392fc9709a3 636 * @arg COMP_OR_AFOPG3 : Alternate Function PG3 source selection
AnnaBridge 189:f392fc9709a3 637 * @arg COMP_OR_AFOPG4 : Alternate Function PG4 source selection
AnnaBridge 189:f392fc9709a3 638 * @arg COMP_OR_AFOPI1 : Alternate Function PI1 source selection
AnnaBridge 189:f392fc9709a3 639 * @arg COMP_OR_AFOPI4 : Alternate Function PI4 source selection
AnnaBridge 189:f392fc9709a3 640 * @arg COMP_OR_AFOPK2 : Alternate Function PK2 source selection
AnnaBridge 189:f392fc9709a3 641 * @retval None
AnnaBridge 189:f392fc9709a3 642 */
AnnaBridge 189:f392fc9709a3 643 #define __HAL_COMP_ENABLE_OR(__AF__) SET_BIT(COMP12->OR, (__AF__))
AnnaBridge 189:f392fc9709a3 644
AnnaBridge 189:f392fc9709a3 645 /** @brief Disable the specified bit in the Option register.
AnnaBridge 189:f392fc9709a3 646 * @param __AF__: specifies the Alternate Function source selection .
AnnaBridge 189:f392fc9709a3 647 * This parameter can be one of the following values:
AnnaBridge 189:f392fc9709a3 648 * @arg COMP_OR_AFOPA6 : Alternate Function PA6 source selection
AnnaBridge 189:f392fc9709a3 649 * @arg COMP_OR_AFOPA8 : Alternate Function PA8 source selection
AnnaBridge 189:f392fc9709a3 650 * @arg COMP_OR_AFOPB12 : Alternate Function PB12 source selection
AnnaBridge 189:f392fc9709a3 651 * @arg COMP_OR_AFOPE6 : Alternate Function PE6 source selection
AnnaBridge 189:f392fc9709a3 652 * @arg COMP_OR_AFOPE15 : Alternate Function PE15 source selection
AnnaBridge 189:f392fc9709a3 653 * @arg COMP_OR_AFOPG2 : Alternate Function PG2 source selection
AnnaBridge 189:f392fc9709a3 654 * @arg COMP_OR_AFOPG3 : Alternate Function PG3 source selection
AnnaBridge 189:f392fc9709a3 655 * @arg COMP_OR_AFOPG4 : Alternate Function PG4 source selection
AnnaBridge 189:f392fc9709a3 656 * @arg COMP_OR_AFOPI1 : Alternate Function PI1 source selection
AnnaBridge 189:f392fc9709a3 657 * @arg COMP_OR_AFOPI4 : Alternate Function PI4 source selection
AnnaBridge 189:f392fc9709a3 658 * @arg COMP_OR_AFOPK2 : Alternate Function PK2 source selection
AnnaBridge 189:f392fc9709a3 659 * @retval None
AnnaBridge 189:f392fc9709a3 660 */
AnnaBridge 189:f392fc9709a3 661 #define __HAL_COMP_DISABLE_OR(__AF__) CLEAR_BIT(COMP12->OR, (__AF__))
AnnaBridge 189:f392fc9709a3 662 /**
AnnaBridge 189:f392fc9709a3 663 * @}
AnnaBridge 189:f392fc9709a3 664 */
AnnaBridge 189:f392fc9709a3 665
AnnaBridge 189:f392fc9709a3 666 /* Private types -------------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 667 /* Private constants ---------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 668 /** @defgroup COMP_Private_Constants COMP Private Constants
AnnaBridge 189:f392fc9709a3 669 * @{
AnnaBridge 189:f392fc9709a3 670 */
AnnaBridge 189:f392fc9709a3 671 /** @defgroup COMP_ExtiLine COMP EXTI Lines
AnnaBridge 189:f392fc9709a3 672 * @{
AnnaBridge 189:f392fc9709a3 673 */
AnnaBridge 189:f392fc9709a3 674 #define COMP_EXTI_LINE_COMP1 (EXTI_IMR1_IM20) /*!< EXTI line 20 connected to COMP1 output */
AnnaBridge 189:f392fc9709a3 675 #define COMP_EXTI_LINE_COMP2 (EXTI_IMR1_IM21) /*!< EXTI line 21 connected to COMP2 output */
AnnaBridge 189:f392fc9709a3 676 /**
AnnaBridge 189:f392fc9709a3 677 * @}
AnnaBridge 189:f392fc9709a3 678 */
AnnaBridge 189:f392fc9709a3 679 /** @defgroup COMP_ExtiLine COMP EXTI Lines
AnnaBridge 189:f392fc9709a3 680 * @{
AnnaBridge 189:f392fc9709a3 681 */
AnnaBridge 189:f392fc9709a3 682 #define COMP_EXTI_IT ((uint32_t) 0x01) /*!< EXTI line event with interruption */
AnnaBridge 189:f392fc9709a3 683 #define COMP_EXTI_EVENT ((uint32_t) 0x02) /*!< EXTI line event only (without interruption) */
AnnaBridge 189:f392fc9709a3 684 #define COMP_EXTI_RISING ((uint32_t) 0x10) /*!< EXTI line event on rising edge */
AnnaBridge 189:f392fc9709a3 685 #define COMP_EXTI_FALLING ((uint32_t) 0x20) /*!< EXTI line event on falling edge */
AnnaBridge 189:f392fc9709a3 686 /**
AnnaBridge 189:f392fc9709a3 687 * @}
AnnaBridge 189:f392fc9709a3 688 */
AnnaBridge 189:f392fc9709a3 689 /**
AnnaBridge 189:f392fc9709a3 690 * @}
AnnaBridge 189:f392fc9709a3 691 */
AnnaBridge 189:f392fc9709a3 692
AnnaBridge 189:f392fc9709a3 693 /* Private macros ------------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 694 /** @defgroup COMP_Private_Macros COMP Private Macros
AnnaBridge 189:f392fc9709a3 695 * @{
AnnaBridge 189:f392fc9709a3 696 */
AnnaBridge 189:f392fc9709a3 697 /** @defgroup COMP_GET_EXTI_LINE COMP Private macros to get EXTI line associated with Comparators
AnnaBridge 189:f392fc9709a3 698 * @{
AnnaBridge 189:f392fc9709a3 699 */
AnnaBridge 189:f392fc9709a3 700 /**
AnnaBridge 189:f392fc9709a3 701 * @brief Get the specified EXTI line for a comparator instance.
AnnaBridge 189:f392fc9709a3 702 * @param __INSTANCE__: specifies the COMP instance.
AnnaBridge 189:f392fc9709a3 703 * @retval value of @ref COMP_ExtiLine
AnnaBridge 189:f392fc9709a3 704 */
AnnaBridge 189:f392fc9709a3 705 #define COMP_GET_EXTI_LINE(__INSTANCE__) (((__INSTANCE__) == COMP1) ? COMP_EXTI_LINE_COMP1 : \
AnnaBridge 189:f392fc9709a3 706 COMP_EXTI_LINE_COMP2)
AnnaBridge 189:f392fc9709a3 707 /**
AnnaBridge 189:f392fc9709a3 708 * @}
AnnaBridge 189:f392fc9709a3 709 */
AnnaBridge 189:f392fc9709a3 710 /** @defgroup COMP_IS_COMP_Definitions COMP private macros to check input parameters
AnnaBridge 189:f392fc9709a3 711 * @{
AnnaBridge 189:f392fc9709a3 712 */
AnnaBridge 189:f392fc9709a3 713 #define IS_COMP_WINDOWMODE(__WINDOWMODE__) (((__WINDOWMODE__) == COMP_WINDOWMODE_DISABLE) || \
AnnaBridge 189:f392fc9709a3 714 ((__WINDOWMODE__) == COMP_WINDOWMODE_COMP1_INPUT_PLUS_COMMON) )
AnnaBridge 189:f392fc9709a3 715
AnnaBridge 189:f392fc9709a3 716 #define IS_COMP_POWERMODE(__POWERMODE__) (((__POWERMODE__) == COMP_POWERMODE_HIGHSPEED) || \
AnnaBridge 189:f392fc9709a3 717 ((__POWERMODE__) == COMP_POWERMODE_MEDIUMSPEED) || \
AnnaBridge 189:f392fc9709a3 718 ((__POWERMODE__) == COMP_POWERMODE_ULTRALOWPOWER) )
AnnaBridge 189:f392fc9709a3 719
AnnaBridge 189:f392fc9709a3 720
AnnaBridge 189:f392fc9709a3 721 #define IS_COMP_INPUT_PLUS(__COMP_INSTANCE__, __INPUT_PLUS__) (((__INPUT_PLUS__) == COMP_INPUT_PLUS_IO1) || \
AnnaBridge 189:f392fc9709a3 722 ((__INPUT_PLUS__) == COMP_INPUT_PLUS_IO2))
AnnaBridge 189:f392fc9709a3 723
AnnaBridge 189:f392fc9709a3 724
AnnaBridge 189:f392fc9709a3 725
AnnaBridge 189:f392fc9709a3 726 #define IS_COMP_INPUT_MINUS(__COMP_INSTANCE__, __INPUT_MINUS__) (((__INPUT_MINUS__) == COMP_INPUT_MINUS_1_4VREFINT) || \
AnnaBridge 189:f392fc9709a3 727 ((__INPUT_MINUS__) == COMP_INPUT_MINUS_1_2VREFINT) || \
AnnaBridge 189:f392fc9709a3 728 ((__INPUT_MINUS__) == COMP_INPUT_MINUS_3_4VREFINT) || \
AnnaBridge 189:f392fc9709a3 729 ((__INPUT_MINUS__) == COMP_INPUT_MINUS_VREFINT) || \
AnnaBridge 189:f392fc9709a3 730 ((__INPUT_MINUS__) == COMP_INPUT_MINUS_DAC1_CH1) || \
AnnaBridge 189:f392fc9709a3 731 ((__INPUT_MINUS__) == COMP_INPUT_MINUS_DAC1_CH2) || \
AnnaBridge 189:f392fc9709a3 732 ((__INPUT_MINUS__) == COMP_INPUT_MINUS_IO1) || \
AnnaBridge 189:f392fc9709a3 733 ((__INPUT_MINUS__) == COMP_INPUT_MINUS_IO2))
AnnaBridge 189:f392fc9709a3 734
AnnaBridge 189:f392fc9709a3 735
AnnaBridge 189:f392fc9709a3 736 #define IS_COMP_HYSTERESIS(__HYSTERESIS__) (((__HYSTERESIS__) == COMP_HYSTERESIS_NONE) || \
AnnaBridge 189:f392fc9709a3 737 ((__HYSTERESIS__) == COMP_HYSTERESIS_LOW) || \
AnnaBridge 189:f392fc9709a3 738 ((__HYSTERESIS__) == COMP_HYSTERESIS_MEDIUM) || \
AnnaBridge 189:f392fc9709a3 739 ((__HYSTERESIS__) == COMP_HYSTERESIS_HIGH))
AnnaBridge 189:f392fc9709a3 740
AnnaBridge 189:f392fc9709a3 741 #define IS_COMP_OUTPUTPOL(__POL__) (((__POL__) == COMP_OUTPUTPOL_NONINVERTED) || \
AnnaBridge 189:f392fc9709a3 742 ((__POL__) == COMP_OUTPUTPOL_INVERTED))
AnnaBridge 189:f392fc9709a3 743
AnnaBridge 189:f392fc9709a3 744 #define IS_COMP_BLANKINGSRCE(__SOURCE__) (((__SOURCE__) == COMP_BLANKINGSRC_NONE) || \
AnnaBridge 189:f392fc9709a3 745 ((__SOURCE__) == COMP_BLANKINGSRC_TIM1_OC5) || \
AnnaBridge 189:f392fc9709a3 746 ((__SOURCE__) == COMP_BLANKINGSRC_TIM2_OC3) || \
AnnaBridge 189:f392fc9709a3 747 ((__SOURCE__) == COMP_BLANKINGSRC_TIM3_OC3) || \
AnnaBridge 189:f392fc9709a3 748 ((__SOURCE__) == COMP_BLANKINGSRC_TIM3_OC4) || \
AnnaBridge 189:f392fc9709a3 749 ((__SOURCE__) == COMP_BLANKINGSRC_TIM8_OC5) || \
AnnaBridge 189:f392fc9709a3 750 ((__SOURCE__) == COMP_BLANKINGSRC_TIM15_OC1))
AnnaBridge 189:f392fc9709a3 751
AnnaBridge 189:f392fc9709a3 752
AnnaBridge 189:f392fc9709a3 753 #define IS_COMP_TRIGGERMODE(__MODE__) (((__MODE__) == COMP_TRIGGERMODE_NONE) || \
AnnaBridge 189:f392fc9709a3 754 ((__MODE__) == COMP_TRIGGERMODE_IT_RISING) || \
AnnaBridge 189:f392fc9709a3 755 ((__MODE__) == COMP_TRIGGERMODE_IT_FALLING) || \
AnnaBridge 189:f392fc9709a3 756 ((__MODE__) == COMP_TRIGGERMODE_IT_RISING_FALLING) || \
AnnaBridge 189:f392fc9709a3 757 ((__MODE__) == COMP_TRIGGERMODE_EVENT_RISING) || \
AnnaBridge 189:f392fc9709a3 758 ((__MODE__) == COMP_TRIGGERMODE_EVENT_FALLING) || \
AnnaBridge 189:f392fc9709a3 759 ((__MODE__) == COMP_TRIGGERMODE_EVENT_RISING_FALLING))
AnnaBridge 189:f392fc9709a3 760
AnnaBridge 189:f392fc9709a3 761 #define IS_COMP_OUTPUT_LEVEL(__OUTPUT_LEVEL__) (((__OUTPUT_LEVEL__) == COMP_OUTPUT_LEVEL_LOW) || \
AnnaBridge 189:f392fc9709a3 762 ((__OUTPUT_LEVEL__) == COMP_OUTPUT_LEVEL_HIGH))
AnnaBridge 189:f392fc9709a3 763
AnnaBridge 189:f392fc9709a3 764 /**
AnnaBridge 189:f392fc9709a3 765 * @}
AnnaBridge 189:f392fc9709a3 766 */
AnnaBridge 189:f392fc9709a3 767
AnnaBridge 189:f392fc9709a3 768 /**
AnnaBridge 189:f392fc9709a3 769 * @}
AnnaBridge 189:f392fc9709a3 770 */
AnnaBridge 189:f392fc9709a3 771
AnnaBridge 189:f392fc9709a3 772 /* Exported functions --------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 773 /** @addtogroup COMP_Exported_Functions
AnnaBridge 189:f392fc9709a3 774 * @{
AnnaBridge 189:f392fc9709a3 775 */
AnnaBridge 189:f392fc9709a3 776
AnnaBridge 189:f392fc9709a3 777 /** @addtogroup COMP_Exported_Functions_Group1
AnnaBridge 189:f392fc9709a3 778 * @{
AnnaBridge 189:f392fc9709a3 779 */
AnnaBridge 189:f392fc9709a3 780 /* Initialization and de-initialization functions **********************************/
AnnaBridge 189:f392fc9709a3 781 HAL_StatusTypeDef HAL_COMP_Init(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 782 HAL_StatusTypeDef HAL_COMP_DeInit (COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 783 void HAL_COMP_MspInit(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 784 void HAL_COMP_MspDeInit(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 785 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1)
AnnaBridge 189:f392fc9709a3 786 /* Callbacks Register/UnRegister functions ***********************************/
AnnaBridge 189:f392fc9709a3 787 HAL_StatusTypeDef HAL_COMP_RegisterCallback(COMP_HandleTypeDef *hcomp, HAL_COMP_CallbackIDTypeDef CallbackID, pCOMP_CallbackTypeDef pCallback);
AnnaBridge 189:f392fc9709a3 788 HAL_StatusTypeDef HAL_COMP_UnRegisterCallback(COMP_HandleTypeDef *hcomp, HAL_COMP_CallbackIDTypeDef CallbackID);
AnnaBridge 189:f392fc9709a3 789 #endif /* USE_HAL_COMP_REGISTER_CALLBACKS */
AnnaBridge 189:f392fc9709a3 790 /**
AnnaBridge 189:f392fc9709a3 791 * @}
AnnaBridge 189:f392fc9709a3 792 */
AnnaBridge 189:f392fc9709a3 793
AnnaBridge 189:f392fc9709a3 794 /* IO operation functions *****************************************************/
AnnaBridge 189:f392fc9709a3 795 /** @addtogroup COMP_Exported_Functions_Group2
AnnaBridge 189:f392fc9709a3 796 * @{
AnnaBridge 189:f392fc9709a3 797 */
AnnaBridge 189:f392fc9709a3 798 HAL_StatusTypeDef HAL_COMP_Start(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 799 HAL_StatusTypeDef HAL_COMP_Stop(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 800 HAL_StatusTypeDef HAL_COMP_Start_IT(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 801 HAL_StatusTypeDef HAL_COMP_Stop_IT(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 802 void HAL_COMP_IRQHandler(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 803
AnnaBridge 189:f392fc9709a3 804 /**
AnnaBridge 189:f392fc9709a3 805 * @}
AnnaBridge 189:f392fc9709a3 806 */
AnnaBridge 189:f392fc9709a3 807
AnnaBridge 189:f392fc9709a3 808 /* Peripheral Control functions ************************************************/
AnnaBridge 189:f392fc9709a3 809 /** @addtogroup COMP_Exported_Functions_Group3
AnnaBridge 189:f392fc9709a3 810 * @{
AnnaBridge 189:f392fc9709a3 811 */
AnnaBridge 189:f392fc9709a3 812 HAL_StatusTypeDef HAL_COMP_Lock(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 813 uint32_t HAL_COMP_GetOutputLevel(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 814 /* Callback in Interrupt mode */
AnnaBridge 189:f392fc9709a3 815 void HAL_COMP_TriggerCallback(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 816 /**
AnnaBridge 189:f392fc9709a3 817 * @}
AnnaBridge 189:f392fc9709a3 818 */
AnnaBridge 189:f392fc9709a3 819
AnnaBridge 189:f392fc9709a3 820 /* Peripheral State functions **************************************************/
AnnaBridge 189:f392fc9709a3 821 /** @addtogroup COMP_Exported_Functions_Group4
AnnaBridge 189:f392fc9709a3 822 * @{
AnnaBridge 189:f392fc9709a3 823 */
AnnaBridge 189:f392fc9709a3 824 HAL_COMP_StateTypeDef HAL_COMP_GetState(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 825 uint32_t HAL_COMP_GetError(COMP_HandleTypeDef *hcomp);
AnnaBridge 189:f392fc9709a3 826 /**
AnnaBridge 189:f392fc9709a3 827 * @}
AnnaBridge 189:f392fc9709a3 828 */
AnnaBridge 189:f392fc9709a3 829
AnnaBridge 189:f392fc9709a3 830 /**
AnnaBridge 189:f392fc9709a3 831 * @}
AnnaBridge 189:f392fc9709a3 832 */
AnnaBridge 189:f392fc9709a3 833
AnnaBridge 189:f392fc9709a3 834
AnnaBridge 189:f392fc9709a3 835 /**
AnnaBridge 189:f392fc9709a3 836 * @}
AnnaBridge 189:f392fc9709a3 837 */
AnnaBridge 189:f392fc9709a3 838
AnnaBridge 189:f392fc9709a3 839 /**
AnnaBridge 189:f392fc9709a3 840 * @}
AnnaBridge 189:f392fc9709a3 841 */
AnnaBridge 189:f392fc9709a3 842 #ifdef __cplusplus
AnnaBridge 189:f392fc9709a3 843 }
AnnaBridge 189:f392fc9709a3 844 #endif
AnnaBridge 189:f392fc9709a3 845
AnnaBridge 189:f392fc9709a3 846 #endif /* STM32H7xx_HAL_COMP_H */
AnnaBridge 189:f392fc9709a3 847
AnnaBridge 189:f392fc9709a3 848 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/