The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
<>
Date:
Thu Feb 02 16:02:30 2017 +0000
Revision:
135:176b8275d35d
Parent:
128:9bcdf88f62b0
Release 135 of the mbed library

Ports for Upcoming Targets

3571: DISCO_F769NI introduction https://github.com/ARMmbed/mbed-os/pull/3571
3605: Add DELTA_DFCM_NNN50 platform https://github.com/ARMmbed/mbed-os/pull/3605
3640: [MAX32630FTHR] Adding new platform https://github.com/ARMmbed/mbed-os/pull/3640

Fixes and Changes

3397: Add uVisor support for the DISCO_F429ZI https://github.com/ARMmbed/mbed-os/pull/3397
3573: fix failing RTC initialization for MTS_DRAGONFLY_F411RE https://github.com/ARMmbed/mbed-os/pull/3573
3575: Dev stm factorize gpio https://github.com/ARMmbed/mbed-os/pull/3575
3584: STM32: make PeripheralPins.h a common file https://github.com/ARMmbed/mbed-os/pull/3584
3583: STM32F7 Cube FW new release v1.5.1 https://github.com/ARMmbed/mbed-os/pull/3583
3578: Target system - Inherit names from target parents https://github.com/ARMmbed/mbed-os/pull/3578
3599: K22F: Enable TRNG https://github.com/ARMmbed/mbed-os/pull/3599
3614: STM32: make PortNames.h a common file https://github.com/ARMmbed/mbed-os/pull/3614
3617: EFM32GG: Fix GCC_ARM linker script https://github.com/ARMmbed/mbed-os/pull/3617
3618: STM32: Move types definitions to a common file https://github.com/ARMmbed/mbed-os/pull/3618
3631: F3 CUBE update V1.7.0 https://github.com/ARMmbed/mbed-os/pull/3631
3635: STM32 I2C : Fix bug in i2c_byte_read function https://github.com/ARMmbed/mbed-os/pull/3635
3651: Max32630 - fix LED4 https://github.com/ARMmbed/mbed-os/pull/3651

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 126:abea610beb85 1 /**
AnnaBridge 126:abea610beb85 2 ******************************************************************************
AnnaBridge 126:abea610beb85 3 * @file stm32f3xx_hal_comp_ex.h
AnnaBridge 126:abea610beb85 4 * @author MCD Application Team
<> 135:176b8275d35d 5 * @version V1.4.0
<> 135:176b8275d35d 6 * @date 16-December-2016
AnnaBridge 126:abea610beb85 7 * @brief Header file of COMP HAL Extended module.
AnnaBridge 126:abea610beb85 8 ******************************************************************************
AnnaBridge 126:abea610beb85 9 * @attention
AnnaBridge 126:abea610beb85 10 *
AnnaBridge 126:abea610beb85 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 126:abea610beb85 12 *
AnnaBridge 126:abea610beb85 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 126:abea610beb85 14 * are permitted provided that the following conditions are met:
AnnaBridge 126:abea610beb85 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 126:abea610beb85 16 * this list of conditions and the following disclaimer.
AnnaBridge 126:abea610beb85 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 126:abea610beb85 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 126:abea610beb85 19 * and/or other materials provided with the distribution.
AnnaBridge 126:abea610beb85 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 126:abea610beb85 21 * may be used to endorse or promote products derived from this software
AnnaBridge 126:abea610beb85 22 * without specific prior written permission.
AnnaBridge 126:abea610beb85 23 *
AnnaBridge 126:abea610beb85 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 126:abea610beb85 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 126:abea610beb85 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 126:abea610beb85 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 126:abea610beb85 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 126:abea610beb85 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 126:abea610beb85 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 126:abea610beb85 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 126:abea610beb85 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 126:abea610beb85 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 126:abea610beb85 34 *
AnnaBridge 126:abea610beb85 35 ******************************************************************************
AnnaBridge 126:abea610beb85 36 */
AnnaBridge 126:abea610beb85 37
AnnaBridge 126:abea610beb85 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 126:abea610beb85 39 #ifndef __STM32F3xx_HAL_COMP_EX_H
AnnaBridge 126:abea610beb85 40 #define __STM32F3xx_HAL_COMP_EX_H
AnnaBridge 126:abea610beb85 41
AnnaBridge 126:abea610beb85 42 #ifdef __cplusplus
AnnaBridge 126:abea610beb85 43 extern "C" {
AnnaBridge 126:abea610beb85 44 #endif
AnnaBridge 126:abea610beb85 45
AnnaBridge 126:abea610beb85 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 47 #include "stm32f3xx_hal_def.h"
AnnaBridge 126:abea610beb85 48
AnnaBridge 126:abea610beb85 49 /** @addtogroup STM32F3xx_HAL_Driver
AnnaBridge 126:abea610beb85 50 * @{
AnnaBridge 126:abea610beb85 51 */
AnnaBridge 126:abea610beb85 52
AnnaBridge 126:abea610beb85 53 /** @defgroup COMPEx COMPEx
AnnaBridge 126:abea610beb85 54 * @{
AnnaBridge 126:abea610beb85 55 */
AnnaBridge 126:abea610beb85 56
AnnaBridge 126:abea610beb85 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 58 /* Exported constants --------------------------------------------------------*/
AnnaBridge 126:abea610beb85 59 /** @defgroup COMPEx_Exported_Constants COMP Extended Exported Constants
AnnaBridge 126:abea610beb85 60 * @{
AnnaBridge 126:abea610beb85 61 */
AnnaBridge 126:abea610beb85 62
AnnaBridge 126:abea610beb85 63 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 64 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 65 /** @defgroup COMPEx_InvertingInput COMP Extended InvertingInput (STM32F302xE/STM32F303xE/STM32F398xx/STM32F302xC/STM32F303xC/STM32F358xx Product devices)
AnnaBridge 126:abea610beb85 66 * @{
AnnaBridge 126:abea610beb85 67 */
<> 135:176b8275d35d 68 #define COMP_INVERTINGINPUT_1_4VREFINT (0x00000000U) /*!< 1U/4 VREFINT connected to comparator inverting input */
<> 135:176b8275d35d 69 #define COMP_INVERTINGINPUT_1_2VREFINT COMP_CSR_COMPxINSEL_0 /*!< 1U/2 VREFINT connected to comparator inverting input */
<> 135:176b8275d35d 70 #define COMP_INVERTINGINPUT_3_4VREFINT COMP_CSR_COMPxINSEL_1 /*!< 3U/4 VREFINT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 71 #define COMP_INVERTINGINPUT_VREFINT (COMP_CSR_COMPxINSEL_1|COMP_CSR_COMPxINSEL_0) /*!< VREFINT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 72 #define COMP_INVERTINGINPUT_DAC1_CH1 COMP_CSR_COMPxINSEL_2 /*!< DAC1_CH1_OUT (PA4) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 73 #define COMP_INVERTINGINPUT_DAC1_CH2 (COMP_CSR_COMPxINSEL_2|COMP_CSR_COMPxINSEL_0) /*!< DAC1_CH2_OUT (PA5) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 74 #define COMP_INVERTINGINPUT_IO1 (COMP_CSR_COMPxINSEL_2|COMP_CSR_COMPxINSEL_1) /*!< IO1 (PA0 for COMP1, PA2 for COMP2, PD15 for COMP3,
AnnaBridge 126:abea610beb85 75 PE8 for COMP4, PD13 for COMP5, PD10 for COMP6,
AnnaBridge 126:abea610beb85 76 PC0 for COMP7) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 77 #define COMP_INVERTINGINPUT_IO2 COMP_CSR_COMPxINSEL /*!< IO2 (PB12 for COMP3, PB2 for COMP4, PB10 for COMP5,
AnnaBridge 126:abea610beb85 78 PB15 for COMP6) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 79 /* Aliases for compatibility */
AnnaBridge 126:abea610beb85 80 #define COMP_INVERTINGINPUT_DAC1 COMP_INVERTINGINPUT_DAC1_CH1
AnnaBridge 126:abea610beb85 81 #define COMP_INVERTINGINPUT_DAC2 COMP_INVERTINGINPUT_DAC1_CH2
AnnaBridge 126:abea610beb85 82 /**
AnnaBridge 126:abea610beb85 83 * @}
AnnaBridge 126:abea610beb85 84 */
AnnaBridge 126:abea610beb85 85 #elif defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
AnnaBridge 126:abea610beb85 86 /** @defgroup COMPEx_InvertingInput COMP Extended InvertingInput (STM32F301x8/STM32F302x8/STM32F318xx Product devices)
AnnaBridge 126:abea610beb85 87 * @{
AnnaBridge 126:abea610beb85 88 */
<> 135:176b8275d35d 89 #define COMP_INVERTINGINPUT_1_4VREFINT (0x00000000U) /*!< 1U/4 VREFINT connected to comparator inverting input */
<> 135:176b8275d35d 90 #define COMP_INVERTINGINPUT_1_2VREFINT COMP_CSR_COMPxINSEL_0 /*!< 1U/2 VREFINT connected to comparator inverting input */
<> 135:176b8275d35d 91 #define COMP_INVERTINGINPUT_3_4VREFINT COMP_CSR_COMPxINSEL_1 /*!< 3U/4 VREFINT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 92 #define COMP_INVERTINGINPUT_VREFINT (COMP_CSR_COMPxINSEL_1|COMP_CSR_COMPxINSEL_0) /*!< VREFINT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 93 #define COMP_INVERTINGINPUT_DAC1_CH1 COMP_CSR_COMPxINSEL_2 /*!< DAC1_CH1_OUT (PA4) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 94 #define COMP_INVERTINGINPUT_IO1 (COMP_CSR_COMPxINSEL_2|COMP_CSR_COMPxINSEL_1) /*!< IO1 (PA2 for COMP2, PB2 for COMP4, PB15 for COMP6)
AnnaBridge 126:abea610beb85 95 connected to comparator inverting input */
AnnaBridge 126:abea610beb85 96 /* Aliases for compatibility */
AnnaBridge 126:abea610beb85 97 #define COMP_INVERTINGINPUT_DAC1 COMP_INVERTINGINPUT_DAC1_CH1
AnnaBridge 126:abea610beb85 98 /**
AnnaBridge 126:abea610beb85 99 * @}
AnnaBridge 126:abea610beb85 100 */
AnnaBridge 126:abea610beb85 101 #elif defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 102 /** @defgroup COMPEx_InvertingInput COMP Extended InvertingInput (STM32F303x8/STM32F334x8/STM32F328xx Product devices)
AnnaBridge 126:abea610beb85 103 * @{
AnnaBridge 126:abea610beb85 104 */
AnnaBridge 126:abea610beb85 105 /* Note: On these STM32 devices, there is only 1 comparator inverting input */
AnnaBridge 126:abea610beb85 106 /* connected to a GPIO. */
AnnaBridge 126:abea610beb85 107 /* It must be chosen among the 2 literals COMP_INVERTINGINPUT_IOx */
AnnaBridge 126:abea610beb85 108 /* depending on comparator instance COMPx. */
<> 135:176b8275d35d 109 #define COMP_INVERTINGINPUT_1_4VREFINT (0x00000000U) /*!< 1U/4 VREFINT connected to comparator inverting input */
<> 135:176b8275d35d 110 #define COMP_INVERTINGINPUT_1_2VREFINT COMP_CSR_COMPxINSEL_0 /*!< 1U/2 VREFINT connected to comparator inverting input */
<> 135:176b8275d35d 111 #define COMP_INVERTINGINPUT_3_4VREFINT COMP_CSR_COMPxINSEL_1 /*!< 3U/4 VREFINT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 112 #define COMP_INVERTINGINPUT_VREFINT (COMP_CSR_COMPxINSEL_1|COMP_CSR_COMPxINSEL_0) /*!< VREFINT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 113 #define COMP_INVERTINGINPUT_DAC1_CH1 COMP_CSR_COMPxINSEL_2 /*!< DAC1_CH1_OUT (PA4) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 114 #define COMP_INVERTINGINPUT_DAC1_CH2 (COMP_CSR_COMPxINSEL_2|COMP_CSR_COMPxINSEL_0) /*!< DAC1_CH2_OUT (PA5) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 115 #define COMP_INVERTINGINPUT_IO1 (COMP_CSR_COMPxINSEL_2|COMP_CSR_COMPxINSEL_1) /*!< IO1 (PA2 for COMP2),
AnnaBridge 126:abea610beb85 116 connected to comparator inverting input */
AnnaBridge 126:abea610beb85 117 #define COMP_INVERTINGINPUT_IO2 (COMP_CSR_COMPxINSEL_2|COMP_CSR_COMPxINSEL_1|COMP_CSR_COMPxINSEL_0) /*!< IO2 (PB2 for COMP4, PB15 for COMP6)
AnnaBridge 126:abea610beb85 118 connected to comparator inverting input */
AnnaBridge 126:abea610beb85 119 #define COMP_INVERTINGINPUT_DAC2_CH1 COMP_CSR_COMPxINSEL_3 /*!< DAC2_CH1_OUT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 120
AnnaBridge 126:abea610beb85 121 /* Aliases for compatibility */
AnnaBridge 126:abea610beb85 122 #define COMP_INVERTINGINPUT_DAC1 COMP_INVERTINGINPUT_DAC1_CH1
AnnaBridge 126:abea610beb85 123 #define COMP_INVERTINGINPUT_DAC2 COMP_INVERTINGINPUT_DAC1_CH2
AnnaBridge 126:abea610beb85 124 /**
AnnaBridge 126:abea610beb85 125 * @}
AnnaBridge 126:abea610beb85 126 */
AnnaBridge 126:abea610beb85 127 #elif defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 128 /** @defgroup COMPEx_InvertingInput COMP Extended InvertingInput (STM32F373xC/STM32F378xx Product devices)
AnnaBridge 126:abea610beb85 129 * @{
AnnaBridge 126:abea610beb85 130 */
<> 135:176b8275d35d 131 #define COMP_INVERTINGINPUT_1_4VREFINT (0x00000000U) /*!< 1U/4 VREFINT connected to comparator inverting input */
<> 135:176b8275d35d 132 #define COMP_INVERTINGINPUT_1_2VREFINT ((uint32_t)COMP_CSR_COMPxINSEL_0) /*!< 1U/2 VREFINT connected to comparator inverting input */
<> 135:176b8275d35d 133 #define COMP_INVERTINGINPUT_3_4VREFINT ((uint32_t)COMP_CSR_COMPxINSEL_1) /*!< 3U/4 VREFINT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 134 #define COMP_INVERTINGINPUT_VREFINT ((uint32_t)(COMP_CSR_COMPxINSEL_1|COMP_CSR_COMPxINSEL_0)) /*!< VREFINT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 135 #define COMP_INVERTINGINPUT_DAC1_CH1 ((uint32_t)COMP_CSR_COMPxINSEL_2) /*!< DAC1_CH1_OUT (PA4) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 136 #define COMP_INVERTINGINPUT_DAC1_CH2 ((uint32_t)(COMP_CSR_COMPxINSEL_2|COMP_CSR_COMPxINSEL_0)) /*!< DAC1_CH2_OUT (PA5) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 137 #define COMP_INVERTINGINPUT_IO1 ((uint32_t)(COMP_CSR_COMPxINSEL_2|COMP_CSR_COMPxINSEL_1)) /*!< IO1 (PA0 for COMP1, PA2 for COMP2) connected to comparator inverting input */
AnnaBridge 126:abea610beb85 138 #define COMP_INVERTINGINPUT_DAC2_CH1 ((uint32_t)COMP_CSR_COMPxINSEL) /*!< DAC2_CH1_OUT connected to comparator inverting input */
AnnaBridge 126:abea610beb85 139
AnnaBridge 126:abea610beb85 140 /* Aliases for compatibility */
AnnaBridge 126:abea610beb85 141 #define COMP_INVERTINGINPUT_DAC1 COMP_INVERTINGINPUT_DAC1_CH1
AnnaBridge 126:abea610beb85 142 #define COMP_INVERTINGINPUT_DAC2 COMP_INVERTINGINPUT_DAC1_CH2
AnnaBridge 126:abea610beb85 143 /**
AnnaBridge 126:abea610beb85 144 * @}
AnnaBridge 126:abea610beb85 145 */
AnnaBridge 126:abea610beb85 146 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 147 /* STM32F302xC || STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 148
AnnaBridge 126:abea610beb85 149 #if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 150 /** @defgroup COMPEx_NonInvertingInput COMP Extended NonInvertingInput (STM32F302xC/STM32F303xC/STM32F358xx Product devices)
AnnaBridge 126:abea610beb85 151 * @{
AnnaBridge 126:abea610beb85 152 */
<> 135:176b8275d35d 153 #define COMP_NONINVERTINGINPUT_IO1 (0x00000000U) /*!< IO1 (PA1 for COMP1, PA7 for COMP2, PB14 for COMP3,
AnnaBridge 126:abea610beb85 154 PB0 for COMP4, PD12 for COMP5, PD11 for COMP6,
AnnaBridge 126:abea610beb85 155 PA0 for COMP7) connected to comparator non inverting input */
AnnaBridge 126:abea610beb85 156 #define COMP_NONINVERTINGINPUT_IO2 COMP_CSR_COMPxNONINSEL /*!< IO2 (PA3 for COMP2, PD14 for COMP3, PE7 for COMP4, PB13 for COMP5,
AnnaBridge 126:abea610beb85 157 PB11 for COMP6, PC1 for COMP7) connected to comparator non inverting input */
AnnaBridge 126:abea610beb85 158 #define COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED COMP1_CSR_COMP1SW1 /*!< DAC ouput connected to comparator COMP1 non inverting input */
AnnaBridge 126:abea610beb85 159 /**
AnnaBridge 126:abea610beb85 160 * @}
AnnaBridge 126:abea610beb85 161 */
AnnaBridge 126:abea610beb85 162 #elif defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
AnnaBridge 126:abea610beb85 163 /** @defgroup COMPEx_NonInvertingInput COMP Extended NonInvertingInput (STM32F301x8/STM32F302x8/STM32F318xx Product devices)
AnnaBridge 126:abea610beb85 164 * @{
AnnaBridge 126:abea610beb85 165 */
<> 135:176b8275d35d 166 #define COMP_NONINVERTINGINPUT_IO1 (0x00000000U) /*!< IO1 (PA7 for COMP2, PB0 for COMP4, PB11 for COMP6)
AnnaBridge 126:abea610beb85 167 connected to comparator non inverting input */
AnnaBridge 126:abea610beb85 168 #define COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED COMP2_CSR_COMP2INPDAC /*!< DAC ouput connected to comparator COMP2 non inverting input */
AnnaBridge 126:abea610beb85 169 /**
AnnaBridge 126:abea610beb85 170 * @}
AnnaBridge 126:abea610beb85 171 */
AnnaBridge 126:abea610beb85 172 #elif defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 173 /** @defgroup COMPEx_NonInvertingInput COMP Extended NonInvertingInput (STM32F373xC/STM32F378xx Product devices)
AnnaBridge 126:abea610beb85 174 * @{
AnnaBridge 126:abea610beb85 175 */
<> 135:176b8275d35d 176 #define COMP_NONINVERTINGINPUT_IO1 (0x00000000U) /*!< IO1 (PA1 for COMP1, PA3 for COMP2)
AnnaBridge 126:abea610beb85 177 connected to comparator non inverting input */
AnnaBridge 126:abea610beb85 178 #define COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED COMP_CSR_COMP1SW1 /*!< DAC ouput connected to comparator COMP1 non inverting input */
AnnaBridge 126:abea610beb85 179 /**
AnnaBridge 126:abea610beb85 180 * @}
AnnaBridge 126:abea610beb85 181 */
AnnaBridge 126:abea610beb85 182 #elif defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)
AnnaBridge 126:abea610beb85 183 /** @defgroup COMPEx_NonInvertingInput COMP Extended NonInvertingInput (STM32F302xE/STM32F303xE/STM32F398xx Product devices)
AnnaBridge 126:abea610beb85 184 * @{
AnnaBridge 126:abea610beb85 185 */
<> 135:176b8275d35d 186 #define COMP_NONINVERTINGINPUT_IO1 (0x00000000U) /*!< IO1 (PA1 for COMP1, PA7 for COMP2, PB14 for COMP3,
AnnaBridge 126:abea610beb85 187 PB0 for COMP4, PD12 for COMP5, PD11 for COMP6,
AnnaBridge 126:abea610beb85 188 PA0 for COMP7) connected to comparator non inverting input */
AnnaBridge 126:abea610beb85 189 #define COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED COMP1_CSR_COMP1SW1 /*!< DAC ouput connected to comparator COMP1 non inverting input */
AnnaBridge 126:abea610beb85 190 /**
AnnaBridge 126:abea610beb85 191 * @}
AnnaBridge 126:abea610beb85 192 */
AnnaBridge 126:abea610beb85 193 #else
AnnaBridge 126:abea610beb85 194 /** @defgroup COMPEx_NonInvertingInput COMP Extended NonInvertingInput (Other Product devices)
AnnaBridge 126:abea610beb85 195 * @{
AnnaBridge 126:abea610beb85 196 */
<> 135:176b8275d35d 197 #define COMP_NONINVERTINGINPUT_IO1 (0x00000000U) /*!< IO1 (PA7 for COMP2, PB0 for COMP4, PB11 for COMP6)
AnnaBridge 126:abea610beb85 198 connected to comparator non inverting input */
AnnaBridge 126:abea610beb85 199 /**
AnnaBridge 126:abea610beb85 200 * @}
AnnaBridge 126:abea610beb85 201 */
AnnaBridge 126:abea610beb85 202 #endif /* STM32F302xC || STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 203
AnnaBridge 126:abea610beb85 204 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
AnnaBridge 126:abea610beb85 205 /** @defgroup COMPEx_Output COMP Extended Output (STM32F301x8/STM32F302x8/STM32F318xx Product devices)
AnnaBridge 126:abea610beb85 206 * Elements value convention on 16 LSB: 00XXXX0000YYYYYYb
AnnaBridge 126:abea610beb85 207 * - YYYYYY : Applicable comparator instance number (bitmap format: 000010 for COMP2, 100000 for COMP6)
AnnaBridge 126:abea610beb85 208 * - XXXX : COMPxOUTSEL value
AnnaBridge 126:abea610beb85 209 * @{
AnnaBridge 126:abea610beb85 210 */
AnnaBridge 126:abea610beb85 211 /* Output Redirection values common to all comparators COMP2, COMP4 and COMP6 */
<> 135:176b8275d35d 212 #define COMP_OUTPUT_NONE (0x0000002AU) /*!< COMP2, COMP4 or COMP6 output isn't connected to other peripherals */
<> 135:176b8275d35d 213 #define COMP_OUTPUT_TIM1BKIN (0x0000042AU) /*!< COMP2, COMP4 or COMP6 output connected to TIM1 Break Input (BKIN) */
<> 135:176b8275d35d 214 #define COMP_OUTPUT_TIM1BKIN2_BRK2 (0x0000082AU) /*!< COMP2, COMP4 or COMP6 output connected to TIM1 Break Input 2 (BRK2) */
<> 135:176b8275d35d 215 #define COMP_OUTPUT_TIM1BKIN2 (0x0000142AU) /*!< COMP2, COMP4 or COMP6 output connected to TIM1 Break Input 2 (BKIN2) */
AnnaBridge 126:abea610beb85 216 /* Output Redirection specific to COMP2 */
<> 135:176b8275d35d 217 #define COMP_OUTPUT_TIM1OCREFCLR (0x00001802U) /*!< COMP2 output connected to TIM1 OCREF Clear */
<> 135:176b8275d35d 218 #define COMP_OUTPUT_TIM1IC1 (0x00001C02U) /*!< COMP2 output connected to TIM1 Input Capture 1U */
<> 135:176b8275d35d 219 #define COMP_OUTPUT_TIM2IC4 (0x00002002U) /*!< COMP2 output connected to TIM2 Input Capture 4U */
<> 135:176b8275d35d 220 #define COMP_OUTPUT_TIM2OCREFCLR (0x00002402U) /*!< COMP2 output connected to TIM2 OCREF Clear */
AnnaBridge 126:abea610beb85 221 /* Output Redirection specific to COMP4 */
<> 135:176b8275d35d 222 #define COMP_OUTPUT_TIM15IC2 (0x00002008U) /*!< COMP4 output connected to TIM15 Input Capture 2U */
<> 135:176b8275d35d 223 #define COMP_OUTPUT_TIM15OCREFCLR (0x00002808U) /*!< COMP4 output connected to TIM15 OCREF Clear */
AnnaBridge 126:abea610beb85 224 /* Output Redirection specific to COMP6 */
<> 135:176b8275d35d 225 #define COMP_OUTPUT_TIM2IC2 (0x00001820U) /*!< COMP6 output connected to TIM2 Input Capture 2U */
<> 135:176b8275d35d 226 #define COMP_OUTPUT_COMP6_TIM2OCREFCLR (0x00002020U) /*!< COMP6 output connected to TIM2 OCREF Clear */
<> 135:176b8275d35d 227 #define COMP_OUTPUT_TIM16OCREFCLR (0x00002420U) /*!< COMP6 output connected to TIM16 OCREF Clear */
<> 135:176b8275d35d 228 #define COMP_OUTPUT_TIM16IC1 (0x00002820U) /*!< COMP6 output connected to TIM16 Input Capture 1U */
AnnaBridge 126:abea610beb85 229 /**
AnnaBridge 126:abea610beb85 230 * @}
AnnaBridge 126:abea610beb85 231 */
AnnaBridge 126:abea610beb85 232 #elif defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 233 /** @defgroup COMPEx_Output COMP Extended Output (STM32F303x8/STM32F334x8/STM32F328xx Product devices)
AnnaBridge 126:abea610beb85 234 * Elements value convention on 16 LSB: 00XXXX0000YYYYYYb
AnnaBridge 126:abea610beb85 235 * - YYYYYY : Applicable comparator instance number (bitmap format: 000010 for COMP2, 100000 for COMP6)
AnnaBridge 126:abea610beb85 236 * - XXXX : COMPxOUTSEL value
AnnaBridge 126:abea610beb85 237 * @{
AnnaBridge 126:abea610beb85 238 */
AnnaBridge 126:abea610beb85 239 /* Output Redirection values common to all comparators COMP2, COMP4 and COMP6 */
<> 135:176b8275d35d 240 #define COMP_OUTPUT_NONE (0x0000002AU) /*!< COMP2, COMP4 or COMP6 output isn't connected to other peripherals */
<> 135:176b8275d35d 241 #define COMP_OUTPUT_TIM1BKIN (0x0000042AU) /*!< COMP2, COMP4 or COMP6 output connected to TIM1 Break Input (BKIN) */
<> 135:176b8275d35d 242 #define COMP_OUTPUT_TIM1BKIN2 (0x0000082AU) /*!< COMP2, COMP4 or COMP6 output connected to TIM1 Break Input 2 (BKIN2) */
AnnaBridge 126:abea610beb85 243 /* Output Redirection common to COMP2 and COMP4 */
<> 135:176b8275d35d 244 #define COMP_OUTPUT_TIM3OCREFCLR (0x00002C0AU) /*!< COMP2 or COMP4 output connected to TIM3 OCREF Clear */
AnnaBridge 126:abea610beb85 245 /* Output Redirection specific to COMP2 */
<> 135:176b8275d35d 246 #define COMP_OUTPUT_TIM1OCREFCLR (0x00001802U) /*!< COMP2 output connected to TIM1 OCREF Clear */
<> 135:176b8275d35d 247 #define COMP_OUTPUT_TIM1IC1 (0x00001C02U) /*!< COMP2 output connected to TIM1 Input Capture 1U */
<> 135:176b8275d35d 248 #define COMP_OUTPUT_TIM2IC4 (0x00002002U) /*!< COMP2 output connected to TIM2 Input Capture 4U */
<> 135:176b8275d35d 249 #define COMP_OUTPUT_TIM2OCREFCLR (0x00002402U) /*!< COMP2 output connected to TIM2 OCREF Clear */
<> 135:176b8275d35d 250 #define COMP_OUTPUT_TIM3IC1 (0x00002802U) /*!< COMP2 output connected to TIM3 Input Capture 1U */
AnnaBridge 126:abea610beb85 251 /* Output Redirection specific to COMP4 */
<> 135:176b8275d35d 252 #define COMP_OUTPUT_TIM3IC3 (0x00001808U) /*!< COMP4 output connected to TIM3 Input Capture 3U */
<> 135:176b8275d35d 253 #define COMP_OUTPUT_TIM15IC2 (0x00002008U) /*!< COMP4 output connected to TIM15 Input Capture 2U */
<> 135:176b8275d35d 254 #define COMP_OUTPUT_TIM15OCREFCLR (0x00002808U) /*!< COMP4 output connected to TIM15 OCREF Clear */
AnnaBridge 126:abea610beb85 255 /* Output Redirection specific to COMP6 */
<> 135:176b8275d35d 256 #define COMP_OUTPUT_TIM2IC2 (0x00001820U) /*!< COMP6 output connected to TIM2 Input Capture 2U */
<> 135:176b8275d35d 257 #define COMP_OUTPUT_COMP6_TIM2OCREFCLR (0x00002020U) /*!< COMP6 output connected to TIM2 OCREF Clear */
<> 135:176b8275d35d 258 #define COMP_OUTPUT_TIM16OCREFCLR (0x00002420U) /*!< COMP6 output connected to TIM16 OCREF Clear */
<> 135:176b8275d35d 259 #define COMP_OUTPUT_TIM16IC1 (0x00002820U) /*!< COMP6 output connected to TIM16 Input Capture 1U */
AnnaBridge 126:abea610beb85 260 /**
AnnaBridge 126:abea610beb85 261 * @}
AnnaBridge 126:abea610beb85 262 */
AnnaBridge 126:abea610beb85 263 #elif defined(STM32F302xC) || defined(STM32F302xE)
AnnaBridge 126:abea610beb85 264 /** @defgroup COMPEx_Output COMP Extended Output (STM32F302xC/STM32F302xE Product devices)
AnnaBridge 126:abea610beb85 265 * Elements value convention on 16 LSB: 00XXXX0000YYYYYYb
AnnaBridge 126:abea610beb85 266 * - YYYYYY : Applicable comparator instance number (bitmap format: 000001 for COMP1, 100000 for COMP6)
AnnaBridge 126:abea610beb85 267 * - XXXX : COMPxOUTSEL value
AnnaBridge 126:abea610beb85 268 * @{
AnnaBridge 126:abea610beb85 269 */
AnnaBridge 126:abea610beb85 270 /* Output Redirection values common to all comparators COMP1, COMP2, COMP4, COMP6 */
<> 135:176b8275d35d 271 #define COMP_OUTPUT_NONE (0x0000002BU) /*!< COMP1, COMP2, COMP4 or COMP6 output isn't connected to other peripherals */
<> 135:176b8275d35d 272 #define COMP_OUTPUT_TIM1BKIN (0x0000042BU) /*!< COMP1, COMP2, COMP4 or COMP6 output connected to TIM1 Break Input (BKIN) */
<> 135:176b8275d35d 273 #define COMP_OUTPUT_TIM1BKIN2_BRK2 (0x0000082BU) /*!< COMP1, COMP2, COMP4 or COMP6 output connected to TIM1 Break Input 2 (BRK2) */
<> 135:176b8275d35d 274 #define COMP_OUTPUT_TIM1BKIN2 (0x0000142BU) /*!< COMP1, COMP2, COMP4 or COMP6 output connected to TIM1 Break Input 2 (BKIN2) */
AnnaBridge 126:abea610beb85 275 /* Output Redirection common to COMP1 and COMP2 */
<> 135:176b8275d35d 276 #define COMP_OUTPUT_TIM1OCREFCLR (0x00001803U) /*!< COMP1 or COMP2 output connected to TIM1 OCREF Clear */
<> 135:176b8275d35d 277 #define COMP_OUTPUT_TIM1IC1 (0x00001C03U) /*!< COMP1 or COMP2 output connected to TIM1 Input Capture 1U */
<> 135:176b8275d35d 278 #define COMP_OUTPUT_TIM2IC4 (0x00002003U) /*!< COMP1 or COMP2 output connected to TIM2 Input Capture 4U */
<> 135:176b8275d35d 279 #define COMP_OUTPUT_TIM2OCREFCLR (0x00002403U) /*!< COMP1 or COMP2 output connected to TIM2 OCREF Clear */
<> 135:176b8275d35d 280 #define COMP_OUTPUT_TIM3IC1 (0x00002803U) /*!< COMP1 or COMP2 output connected to TIM3 Input Capture 1U */
AnnaBridge 126:abea610beb85 281 /* Output Redirection common to COMP1,COMP2 and COMP4 */
<> 135:176b8275d35d 282 #define COMP_OUTPUT_TIM3OCREFCLR (0x00002C0BU) /*!< COMP1, COMP2 or COMP4 output connected to TIM3 OCREF Clear */
AnnaBridge 126:abea610beb85 283 /* Output Redirection specific to COMP4 */
<> 135:176b8275d35d 284 #define COMP_OUTPUT_TIM3IC3 (0x00001808U) /*!< COMP4 output connected to TIM3 Input Capture 3U */
<> 135:176b8275d35d 285 #define COMP_OUTPUT_TIM15IC2 (0x00002008U) /*!< COMP4 output connected to TIM15 Input Capture 2U */
<> 135:176b8275d35d 286 #define COMP_OUTPUT_TIM4IC2 (0x00002408U) /*!< COMP4 output connected to TIM4 Input Capture 2U */
<> 135:176b8275d35d 287 #define COMP_OUTPUT_TIM15OCREFCLR (0x00002808U) /*!< COMP4 output connected to TIM15 OCREF Clear */
AnnaBridge 126:abea610beb85 288 /* Output Redirection specific to COMP6 */
<> 135:176b8275d35d 289 #define COMP_OUTPUT_TIM2IC2 (0x00001820U) /*!< COMP6 output connected to TIM2 Input Capture 2U */
<> 135:176b8275d35d 290 #define COMP_OUTPUT_COMP6_TIM2OCREFCLR (0x00002020U) /*!< COMP6 output connected to TIM2 OCREF Clear */
<> 135:176b8275d35d 291 #define COMP_OUTPUT_TIM16OCREFCLR (0x00002420U) /*!< COMP6 output connected to TIM16 OCREF Clear */
<> 135:176b8275d35d 292 #define COMP_OUTPUT_TIM16IC1 (0x00002820U) /*!< COMP6 output connected to TIM16 Input Capture 1U */
<> 135:176b8275d35d 293 #define COMP_OUTPUT_TIM4IC4 (0x00002C20U) /*!< COMP6 output connected to TIM4 Input Capture 4U */
AnnaBridge 126:abea610beb85 294 /**
AnnaBridge 126:abea610beb85 295 * @}
AnnaBridge 126:abea610beb85 296 */
AnnaBridge 126:abea610beb85 297 #elif defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 298 /** @defgroup COMPEx_Output COMP Extended Output (STM32F303xC/STM32F358xx Product devices)
AnnaBridge 126:abea610beb85 299 * Elements value convention on 16 LSB: 00XXXX000YYYYYYYb
AnnaBridge 126:abea610beb85 300 * - YYYYYYY : Applicable comparator instance number (bitmap format: 0000001 for COMP1, 1000000 for COMP7)
AnnaBridge 126:abea610beb85 301 * - XXXX : COMPxOUTSEL value
AnnaBridge 126:abea610beb85 302 * @{
AnnaBridge 126:abea610beb85 303 */
AnnaBridge 126:abea610beb85 304 /* Output Redirection values common to all comparators COMP1...COMP7 */
<> 135:176b8275d35d 305 #define COMP_OUTPUT_NONE (0x0000007FU) /*!< COMP1, COMP2... or COMP7 output isn't connected to other peripherals */
<> 135:176b8275d35d 306 #define COMP_OUTPUT_TIM1BKIN (0x0000047FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM1 Break Input (BKIN) */
<> 135:176b8275d35d 307 #define COMP_OUTPUT_TIM1BKIN2 (0x0000087FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM1 Break Input 2 (BKIN2) */
<> 135:176b8275d35d 308 #define COMP_OUTPUT_TIM8BKIN (0x00000C7FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM8 Break Input (BKIN) */
<> 135:176b8275d35d 309 #define COMP_OUTPUT_TIM8BKIN2 (0x0000107FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM8 Break Input 2 (BKIN2) */
<> 135:176b8275d35d 310 #define COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2 (0x0000147FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM1 Break Input 2 and TIM8 Break Input 2U */
AnnaBridge 126:abea610beb85 311 /* Output Redirection common to COMP1, COMP2, COMP3 and COMP7 */
<> 135:176b8275d35d 312 #define COMP_OUTPUT_TIM1OCREFCLR (0x00001847U) /*!< COMP1, COMP2, COMP3 or COMP7 output connected to TIM1 OCREF Clear */
AnnaBridge 126:abea610beb85 313 /* Output Redirection common to COMP1, COMP2 and COMP3 */
<> 135:176b8275d35d 314 #define COMP_OUTPUT_TIM2OCREFCLR (0x00002407U) /*!< COMP1, COMP2 or COMP3 output connected to TIM2 OCREF Clear */
AnnaBridge 126:abea610beb85 315 /* Output Redirection common to COMP1, COMP2, COMP4 and COMP5 */
<> 135:176b8275d35d 316 #define COMP_OUTPUT_TIM3OCREFCLR (0x00002C1BU) /*!< COMP1, COMP2, COMP4 or COMP5 output connected to TIM3 OCREF Clear */
AnnaBridge 126:abea610beb85 317 /* Output Redirection common to COMP4, COMP5, COMP6 and COMP7 */
<> 135:176b8275d35d 318 #define COMP_OUTPUT_TIM8OCREFCLR (0x00001C78U) /*!< COMP4, COMP5, COMP6 or COMP7 output connected to TIM8 OCREF Clear */
AnnaBridge 126:abea610beb85 319 /* Output Redirection common to COMP1 and COMP2 */
<> 135:176b8275d35d 320 #define COMP_OUTPUT_TIM1IC1 (0x00001C03U) /*!< COMP1 or COMP2 output connected to TIM1 Input Capture 1U */
<> 135:176b8275d35d 321 #define COMP_OUTPUT_TIM2IC4 (0x00002003U) /*!< COMP1 or COMP2 output connected to TIM2 Input Capture 4U */
<> 135:176b8275d35d 322 #define COMP_OUTPUT_TIM3IC1 (0x00002803U) /*!< COMP1 or COMP2 output connected to TIM3 Input Capture 1U */
AnnaBridge 126:abea610beb85 323 /* Output Redirection specific to COMP3 */
<> 135:176b8275d35d 324 #define COMP_OUTPUT_TIM4IC1 (0x00001C04U) /*!< COMP3 output connected to TIM4 Input Capture 1U */
<> 135:176b8275d35d 325 #define COMP_OUTPUT_TIM3IC2 (0x00002004U) /*!< COMP3 output connected to TIM3 Input Capture 2U */
<> 135:176b8275d35d 326 #define COMP_OUTPUT_TIM15IC1 (0x00002804U) /*!< COMP3 output connected to TIM15 Input Capture 1U */
<> 135:176b8275d35d 327 #define COMP_OUTPUT_TIM15BKIN (0x00002C04U) /*!< COMP3 output connected to TIM15 Break Input (BKIN) */
AnnaBridge 126:abea610beb85 328 /* Output Redirection specific to COMP4 */
<> 135:176b8275d35d 329 #define COMP_OUTPUT_TIM3IC3 (0x00001808U) /*!< COMP4 output connected to TIM3 Input Capture 3U */
<> 135:176b8275d35d 330 #define COMP_OUTPUT_TIM15IC2 (0x00002008U) /*!< COMP4 output connected to TIM15 Input Capture 2U */
<> 135:176b8275d35d 331 #define COMP_OUTPUT_TIM4IC2 (0x00002408U) /*!< COMP4 output connected to TIM4 Input Capture 2U */
<> 135:176b8275d35d 332 #define COMP_OUTPUT_TIM15OCREFCLR (0x00002808U) /*!< COMP4 output connected to TIM15 OCREF Clear */
AnnaBridge 126:abea610beb85 333 /* Output Redirection specific to COMP5 */
<> 135:176b8275d35d 334 #define COMP_OUTPUT_TIM2IC1 (0x00001810U) /*!< COMP5 output connected to TIM2 Input Capture 1U */
<> 135:176b8275d35d 335 #define COMP_OUTPUT_TIM17IC1 (0x00002010U) /*!< COMP5 output connected to TIM17 Input Capture 1U */
<> 135:176b8275d35d 336 #define COMP_OUTPUT_TIM4IC3 (0x00002410U) /*!< COMP5 output connected to TIM4 Input Capture 3U */
<> 135:176b8275d35d 337 #define COMP_OUTPUT_TIM16BKIN (0x00002810U) /*!< COMP5 output connected to TIM16 Break Input (BKIN) */
AnnaBridge 126:abea610beb85 338 /* Output Redirection specific to COMP6 */
<> 135:176b8275d35d 339 #define COMP_OUTPUT_TIM2IC2 (0x00001820U) /*!< COMP6 output connected to TIM2 Input Capture 2U */
<> 135:176b8275d35d 340 #define COMP_OUTPUT_COMP6_TIM2OCREFCLR (0x00002020U) /*!< COMP6 output connected to TIM2 OCREF Clear */
<> 135:176b8275d35d 341 #define COMP_OUTPUT_TIM16OCREFCLR (0x00002420U) /*!< COMP6 output connected to TIM16 OCREF Clear */
<> 135:176b8275d35d 342 #define COMP_OUTPUT_TIM16IC1 (0x00002820U) /*!< COMP6 output connected to TIM16 Input Capture 1U */
<> 135:176b8275d35d 343 #define COMP_OUTPUT_TIM4IC4 (0x00002C20U) /*!< COMP6 output connected to TIM4 Input Capture 4U */
AnnaBridge 126:abea610beb85 344 /* Output Redirection specific to COMP7 */
<> 135:176b8275d35d 345 #define COMP_OUTPUT_TIM2IC3 (0x00002040U) /*!< COMP7 output connected to TIM2 Input Capture 3U */
<> 135:176b8275d35d 346 #define COMP_OUTPUT_TIM1IC2 (0x00002440U) /*!< COMP7 output connected to TIM1 Input Capture 2U */
<> 135:176b8275d35d 347 #define COMP_OUTPUT_TIM17OCREFCLR (0x00002840U) /*!< COMP7 output connected to TIM17 OCREF Clear */
<> 135:176b8275d35d 348 #define COMP_OUTPUT_TIM17BKIN (0x00002C40U) /*!< COMP7 output connected to TIM17 Break Input (BKIN) */
AnnaBridge 126:abea610beb85 349 /**
AnnaBridge 126:abea610beb85 350 * @}
AnnaBridge 126:abea610beb85 351 */
AnnaBridge 126:abea610beb85 352 #elif defined(STM32F303xE) || defined(STM32F398xx)
AnnaBridge 126:abea610beb85 353 /** @defgroup COMPEx_Output COMP Extended Output (STM32F303xE/STM32F398xx Product devices)
AnnaBridge 126:abea610beb85 354 * Elements value convention on 16 LSB: 00XXXX000YYYYYYYb
AnnaBridge 126:abea610beb85 355 * - YYYYYYY : Applicable comparator instance number (bitmap format: 0000001 for COMP1, 1000000 for COMP7)
AnnaBridge 126:abea610beb85 356 * - XXXX : COMPxOUTSEL value
AnnaBridge 126:abea610beb85 357 * @{
AnnaBridge 126:abea610beb85 358 */
AnnaBridge 126:abea610beb85 359 /* Output Redirection values common to all comparators COMP1...COMP7 */
<> 135:176b8275d35d 360 #define COMP_OUTPUT_NONE (0x0000007FU) /*!< COMP1, COMP2... or COMP7 output isn't connected to other peripherals */
<> 135:176b8275d35d 361 #define COMP_OUTPUT_TIM1BKIN (0x0000047FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM1 Break Input (BKIN) */
<> 135:176b8275d35d 362 #define COMP_OUTPUT_TIM1BKIN2 (0x0000087FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM1 Break Input 2 (BKIN2) */
<> 135:176b8275d35d 363 #define COMP_OUTPUT_TIM8BKIN (0x00000C7FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM8 Break Input (BKIN) */
<> 135:176b8275d35d 364 #define COMP_OUTPUT_TIM8BKIN2 (0x0000107FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM8 Break Input 2 (BKIN2) */
<> 135:176b8275d35d 365 #define COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2 (0x0000147FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM1 Break Input 2 and TIM8 Break Input 2U */
<> 135:176b8275d35d 366 #define COMP_OUTPUT_TIM20BKIN (0x0000307FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM20 Break Input (BKIN) */
<> 135:176b8275d35d 367 #define COMP_OUTPUT_TIM20BKIN2 (0x0000347FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM20 Break Input 2 (BKIN2) */
<> 135:176b8275d35d 368 #define COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2 (0x0000387FU) /*!< COMP1, COMP2... or COMP7 output connected to TIM1 Break Input 2U, TIM8 Break Input 2 and TIM20 Break Input 2 */
AnnaBridge 126:abea610beb85 369 /* Output Redirection common to COMP1, COMP2, COMP3 and COMP7 */
<> 135:176b8275d35d 370 #define COMP_OUTPUT_TIM1OCREFCLR (0x00001847U) /*!< COMP1, COMP2, COMP3 or COMP7 output connected to TIM1 OCREF Clear */
AnnaBridge 126:abea610beb85 371 /* Output Redirection common to COMP1, COMP2 and COMP3 */
<> 135:176b8275d35d 372 #define COMP_OUTPUT_TIM2OCREFCLR (0x00002407U) /*!< COMP1, COMP2 or COMP3 output connected to TIM2 OCREF Clear */
AnnaBridge 126:abea610beb85 373 /* Output Redirection common to COMP1, COMP2, COMP4 and COMP5 */
<> 135:176b8275d35d 374 #define COMP_OUTPUT_TIM3OCREFCLR (0x00002C1BU) /*!< COMP1, COMP2, COMP4 or COMP5 output connected to TIM3 OCREF Clear */
AnnaBridge 126:abea610beb85 375 /* Output Redirection common to COMP4, COMP5, COMP6 and COMP7 */
<> 135:176b8275d35d 376 #define COMP_OUTPUT_TIM8OCREFCLR (0x00001C78U) /*!< COMP4, COMP5, COMP6 or COMP7 output connected to TIM8 OCREF Clear */
AnnaBridge 126:abea610beb85 377 /* Output Redirection common to COMP1 and COMP2 */
<> 135:176b8275d35d 378 #define COMP_OUTPUT_TIM1IC1 (0x00001C03U) /*!< COMP1 or COMP2 output connected to TIM1 Input Capture 1U */
<> 135:176b8275d35d 379 #define COMP_OUTPUT_TIM2IC4 (0x00002003U) /*!< COMP1 or COMP2 output connected to TIM2 Input Capture 4U */
<> 135:176b8275d35d 380 #define COMP_OUTPUT_TIM3IC1 (0x00002803U) /*!< COMP1 or COMP2 output connected to TIM3 Input Capture 1U */
AnnaBridge 126:abea610beb85 381 /* Output Redirection specific to COMP2 */
<> 135:176b8275d35d 382 #define COMP_OUTPUT_TIM20OCREFCLR (0x00003C04U) /*!< COMP2 output connected to TIM20 OCREF Clear */
AnnaBridge 126:abea610beb85 383 /* Output Redirection specific to COMP3 */
<> 135:176b8275d35d 384 #define COMP_OUTPUT_TIM4IC1 (0x00001C04U) /*!< COMP3 output connected to TIM4 Input Capture 1U */
<> 135:176b8275d35d 385 #define COMP_OUTPUT_TIM3IC2 (0x00002004U) /*!< COMP3 output connected to TIM3 Input Capture 2U */
<> 135:176b8275d35d 386 #define COMP_OUTPUT_TIM15IC1 (0x00002804U) /*!< COMP3 output connected to TIM15 Input Capture 1U */
<> 135:176b8275d35d 387 #define COMP_OUTPUT_TIM15BKIN (0x00002C04U) /*!< COMP3 output connected to TIM15 Break Input (BKIN) */
AnnaBridge 126:abea610beb85 388 /* Output Redirection specific to COMP4 */
<> 135:176b8275d35d 389 #define COMP_OUTPUT_TIM3IC3 (0x00001808U) /*!< COMP4 output connected to TIM3 Input Capture 3U */
<> 135:176b8275d35d 390 #define COMP_OUTPUT_TIM15IC2 (0x00002008U) /*!< COMP4 output connected to TIM15 Input Capture 2U */
<> 135:176b8275d35d 391 #define COMP_OUTPUT_TIM4IC2 (0x00002408U) /*!< COMP4 output connected to TIM4 Input Capture 2U */
<> 135:176b8275d35d 392 #define COMP_OUTPUT_TIM15OCREFCLR (0x00002808U) /*!< COMP4 output connected to TIM15 OCREF Clear */
AnnaBridge 126:abea610beb85 393 /* Output Redirection specific to COMP5 */
<> 135:176b8275d35d 394 #define COMP_OUTPUT_TIM2IC1 (0x00001810U) /*!< COMP5 output connected to TIM2 Input Capture 1U */
<> 135:176b8275d35d 395 #define COMP_OUTPUT_TIM17IC1 (0x00002010U) /*!< COMP5 output connected to TIM17 Input Capture 1U */
<> 135:176b8275d35d 396 #define COMP_OUTPUT_TIM4IC3 (0x00002410U) /*!< COMP5 output connected to TIM4 Input Capture 3U */
<> 135:176b8275d35d 397 #define COMP_OUTPUT_TIM16BKIN (0x00002810U) /*!< COMP5 output connected to TIM16 Break Input (BKIN) */
AnnaBridge 126:abea610beb85 398 /* Output Redirection specific to COMP6 */
<> 135:176b8275d35d 399 #define COMP_OUTPUT_TIM2IC2 (0x00001820U) /*!< COMP6 output connected to TIM2 Input Capture 2U */
<> 135:176b8275d35d 400 #define COMP_OUTPUT_COMP6_TIM2OCREFCLR (0x00002020U) /*!< COMP6 output connected to TIM2 OCREF Clear */
<> 135:176b8275d35d 401 #define COMP_OUTPUT_TIM16OCREFCLR (0x00002420U) /*!< COMP6 output connected to TIM16 OCREF Clear */
<> 135:176b8275d35d 402 #define COMP_OUTPUT_TIM16IC1 (0x00002820U) /*!< COMP6 output connected to TIM16 Input Capture 1U */
<> 135:176b8275d35d 403 #define COMP_OUTPUT_TIM4IC4 (0x00002C20U) /*!< COMP6 output connected to TIM4 Input Capture 4U */
AnnaBridge 126:abea610beb85 404 /* Output Redirection specific to COMP7 */
<> 135:176b8275d35d 405 #define COMP_OUTPUT_TIM2IC3 (0x00002040U) /*!< COMP7 output connected to TIM2 Input Capture 3U */
<> 135:176b8275d35d 406 #define COMP_OUTPUT_TIM1IC2 (0x00002440U) /*!< COMP7 output connected to TIM1 Input Capture 2U */
<> 135:176b8275d35d 407 #define COMP_OUTPUT_TIM17OCREFCLR (0x00002840U) /*!< COMP7 output connected to TIM17 OCREF Clear */
<> 135:176b8275d35d 408 #define COMP_OUTPUT_TIM17BKIN (0x00002C40U) /*!< COMP7 output connected to TIM17 Break Input (BKIN) */
AnnaBridge 126:abea610beb85 409 /**
AnnaBridge 126:abea610beb85 410 * @}
AnnaBridge 126:abea610beb85 411 */
AnnaBridge 126:abea610beb85 412 #elif defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 413 /** @defgroup COMPEx_Output COMP Extended Output (STM32F373xC/STM32F378xx Product devices)
AnnaBridge 126:abea610beb85 414 * Elements value convention: 00000XXX000000YYb
AnnaBridge 126:abea610beb85 415 * - YY : Applicable comparator instance number (bitmap format: 01 for COMP1, 10 for COMP2)
AnnaBridge 126:abea610beb85 416 * - XXX : COMPxOUTSEL value
AnnaBridge 126:abea610beb85 417 * @{
AnnaBridge 126:abea610beb85 418 */
AnnaBridge 126:abea610beb85 419 /* Output Redirection values common to all comparators COMP1 and COMP2 */
<> 135:176b8275d35d 420 #define COMP_OUTPUT_NONE (0x0003U) /*!< COMP1 or COMP2 output isn't connected to other peripherals */
<> 135:176b8275d35d 421 #define COMP_OUTPUT_TIM2IC4 (0x0403U) /*!< COMP1 or COMP2 output connected to TIM2 Input Capture 4U */
<> 135:176b8275d35d 422 #define COMP_OUTPUT_TIM2OCREFCLR (0x0503U) /*!< COMP1 or COMP2 output connected to TIM2 OCREF Clear */
AnnaBridge 126:abea610beb85 423 /* Output Redirection specific to COMP1 */
<> 135:176b8275d35d 424 #define COMP_OUTPUT_TIM15BKIN (0x0101U) /*!< COMP1 output connected to TIM15 Break Input */
<> 135:176b8275d35d 425 #define COMP_OUTPUT_COMP1_TIM3IC1 (0x0201U) /*!< COMP1 output connected to TIM3 Input Capture 1U */
<> 135:176b8275d35d 426 #define COMP_OUTPUT_COMP1_TIM3OCREFCLR (0x0301U) /*!< COMP1 output connected to TIM3 OCREF Clear */
<> 135:176b8275d35d 427 #define COMP_OUTPUT_TIM5IC4 (0x0601U) /*!< COMP1 output connected to TIM5 Input Capture 4U */
<> 135:176b8275d35d 428 #define COMP_OUTPUT_TIM5OCREFCLR (0x0701U) /*!< COMP1 output connected to TIM5 OCREF Clear */
AnnaBridge 126:abea610beb85 429 /* Output Redirection specific to COMP2 */
<> 135:176b8275d35d 430 #define COMP_OUTPUT_TIM16BKIN (0x0102U) /*!< COMP2 output connected to TIM16 Break Input */
<> 135:176b8275d35d 431 #define COMP_OUTPUT_TIM4IC1 (0x0202U) /*!< COMP2 output connected to TIM4 Input Capture 1U */
<> 135:176b8275d35d 432 #define COMP_OUTPUT_TIM4OCREFCLR (0x0302U) /*!< COMP2 output connected to TIM4 OCREF Clear */
<> 135:176b8275d35d 433 #define COMP_OUTPUT_COMP2_TIM3IC1 (0x0602U) /*!< COMP2 output connected to TIM3 Input Capture 1U */
<> 135:176b8275d35d 434 #define COMP_OUTPUT_COMP2_TIM3OCREFCLR (0x0702U) /*!< COMP2 output connected to TIM3 OCREF Clear */
AnnaBridge 126:abea610beb85 435 /**
AnnaBridge 126:abea610beb85 436 * @}
AnnaBridge 126:abea610beb85 437 */
AnnaBridge 126:abea610beb85 438 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
AnnaBridge 126:abea610beb85 439
AnnaBridge 126:abea610beb85 440 #if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 441 /** @defgroup COMPEx_WindowMode COMP Extended WindowMode (STM32F302xC/STM32F303xC/STM32F358xx Product devices)
AnnaBridge 126:abea610beb85 442 * @{
AnnaBridge 126:abea610beb85 443 */
<> 135:176b8275d35d 444 #define COMP_WINDOWMODE_DISABLE (0x00000000U) /*!< Window mode disabled */
<> 135:176b8275d35d 445 #define COMP_WINDOWMODE_ENABLE COMP_CSR_COMPxWNDWEN /*!< Window mode enabled: non inverting input of comparator X (x=2U,4,6U)
<> 135:176b8275d35d 446 is connected to the non inverting input of comparator X-1U */
AnnaBridge 126:abea610beb85 447 /**
AnnaBridge 126:abea610beb85 448 * @}
AnnaBridge 126:abea610beb85 449 */
AnnaBridge 126:abea610beb85 450 #elif defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)
AnnaBridge 126:abea610beb85 451 /** @defgroup COMPEx_WindowMode COMP Extended WindowMode (STM32F302xE/STM32F303xE/STM32F398xx Product devices)
AnnaBridge 126:abea610beb85 452 * @{
AnnaBridge 126:abea610beb85 453 */
<> 135:176b8275d35d 454 #define COMP_WINDOWMODE_DISABLE (0x00000000U) /*!< Window mode disabled */
<> 135:176b8275d35d 455 #define COMP_WINDOWMODE_ENABLE COMP_CSR_COMPxWNDWEN /*!< Window mode enabled: non inverting input of comparator X (x=2U,4,6U)
<> 135:176b8275d35d 456 is connected to the non inverting input of comparator X-1U */
AnnaBridge 126:abea610beb85 457 /**
AnnaBridge 126:abea610beb85 458 * @}
AnnaBridge 126:abea610beb85 459 */
AnnaBridge 126:abea610beb85 460 #elif defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 461 /** @defgroup COMPEx_WindowMode COMP Extended WindowMode (STM32F373xC/STM32F378xx Product devices)
AnnaBridge 126:abea610beb85 462 * @{
AnnaBridge 126:abea610beb85 463 */
<> 135:176b8275d35d 464 #define COMP_WINDOWMODE_DISABLE (0x00000000U) /*!< Window mode disabled */
AnnaBridge 126:abea610beb85 465 #define COMP_WINDOWMODE_ENABLE ((uint32_t)COMP_CSR_COMPxWNDWEN) /*!< Window mode enabled: non inverting input of comparator 2
AnnaBridge 126:abea610beb85 466 is connected to the non inverting input of comparator 1 (PA1) */
AnnaBridge 126:abea610beb85 467 /**
AnnaBridge 126:abea610beb85 468 * @}
AnnaBridge 126:abea610beb85 469 */
AnnaBridge 126:abea610beb85 470 #else
AnnaBridge 126:abea610beb85 471 /** @defgroup COMPEx_WindowMode COMP Extended WindowMode (Other Product devices)
AnnaBridge 126:abea610beb85 472 * @{
AnnaBridge 126:abea610beb85 473 */
<> 135:176b8275d35d 474 #define COMP_WINDOWMODE_DISABLE (0x00000000U) /*!< Window mode disabled (not available) */
AnnaBridge 126:abea610beb85 475 /**
AnnaBridge 126:abea610beb85 476 * @}
AnnaBridge 126:abea610beb85 477 */
AnnaBridge 126:abea610beb85 478 #endif /* STM32F302xC || STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 479
AnnaBridge 126:abea610beb85 480 /** @defgroup COMPEx_Mode COMP Extended Mode
AnnaBridge 126:abea610beb85 481 * @{
AnnaBridge 126:abea610beb85 482 */
AnnaBridge 126:abea610beb85 483 #if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
AnnaBridge 126:abea610beb85 484 defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 485
AnnaBridge 126:abea610beb85 486 /* Please refer to the electrical characteristics in the device datasheet for
AnnaBridge 126:abea610beb85 487 the power consumption values */
<> 135:176b8275d35d 488 #define COMP_MODE_HIGHSPEED (0x00000000U) /*!< High Speed */
AnnaBridge 126:abea610beb85 489 #define COMP_MODE_MEDIUMSPEED COMP_CSR_COMPxMODE_0 /*!< Medium Speed */
AnnaBridge 126:abea610beb85 490 #define COMP_MODE_LOWPOWER COMP_CSR_COMPxMODE_1 /*!< Low power mode */
AnnaBridge 126:abea610beb85 491 #define COMP_MODE_ULTRALOWPOWER COMP_CSR_COMPxMODE /*!< Ultra-low power mode */
AnnaBridge 126:abea610beb85 492
AnnaBridge 126:abea610beb85 493 #endif /* STM32F302xC || STM32F303xC || STM32F358xx || */
AnnaBridge 126:abea610beb85 494 /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 495 /**
AnnaBridge 126:abea610beb85 496 * @}
AnnaBridge 126:abea610beb85 497 */
AnnaBridge 126:abea610beb85 498
AnnaBridge 126:abea610beb85 499 /** @defgroup COMPEx_Hysteresis COMP Extended Hysteresis
AnnaBridge 126:abea610beb85 500 * @{
AnnaBridge 126:abea610beb85 501 */
AnnaBridge 126:abea610beb85 502 #if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
AnnaBridge 126:abea610beb85 503 defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 504
<> 135:176b8275d35d 505 #define COMP_HYSTERESIS_NONE (0x00000000U) /*!< No hysteresis */
AnnaBridge 126:abea610beb85 506 #define COMP_HYSTERESIS_LOW COMP_CSR_COMPxHYST_0 /*!< Hysteresis level low */
AnnaBridge 126:abea610beb85 507 #define COMP_HYSTERESIS_MEDIUM COMP_CSR_COMPxHYST_1 /*!< Hysteresis level medium */
AnnaBridge 126:abea610beb85 508 #define COMP_HYSTERESIS_HIGH COMP_CSR_COMPxHYST /*!< Hysteresis level high */
AnnaBridge 126:abea610beb85 509
AnnaBridge 126:abea610beb85 510 #else
AnnaBridge 126:abea610beb85 511
<> 135:176b8275d35d 512 #define COMP_HYSTERESIS_NONE (0x00000000U) /*!< No hysteresis */
AnnaBridge 126:abea610beb85 513
AnnaBridge 126:abea610beb85 514 #endif /* STM32F302xC || STM32F303xC || STM32F358xx || */
AnnaBridge 126:abea610beb85 515 /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 516 /**
AnnaBridge 126:abea610beb85 517 * @}
AnnaBridge 126:abea610beb85 518 */
AnnaBridge 126:abea610beb85 519
AnnaBridge 126:abea610beb85 520 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || \
AnnaBridge 126:abea610beb85 521 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 522 /** @defgroup COMPEx_BlankingSrce COMP Extended Blanking Source (STM32F301x8/STM32F302x8/STM32F303x8/STM32F334x8/STM32F318xx/STM32F328xx Product devices)
AnnaBridge 126:abea610beb85 523 * @{
AnnaBridge 126:abea610beb85 524 */
AnnaBridge 126:abea610beb85 525 /* No blanking source can be selected for all comparators */
<> 135:176b8275d35d 526 #define COMP_BLANKINGSRCE_NONE (0x00000000U) /*!< No blanking source */
AnnaBridge 126:abea610beb85 527 /* Blanking source for COMP2 */
AnnaBridge 126:abea610beb85 528 #define COMP_BLANKINGSRCE_TIM1OC5 COMP_CSR_COMPxBLANKING_0 /*!< TIM1 OC5 selected as blanking source for COMP2 */
AnnaBridge 126:abea610beb85 529 #define COMP_BLANKINGSRCE_TIM2OC3 COMP_CSR_COMPxBLANKING_1 /*!< TIM2 OC3 selected as blanking source for COMP2 */
AnnaBridge 126:abea610beb85 530 #define COMP_BLANKINGSRCE_TIM3OC3 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM3 OC3 selected as blanking source for COMP2 */
AnnaBridge 126:abea610beb85 531 /* Blanking source for COMP4 */
AnnaBridge 126:abea610beb85 532 #define COMP_BLANKINGSRCE_TIM3OC4 COMP_CSR_COMPxBLANKING_0 /*!< TIM3 OC4 selected as blanking source for COMP4 */
AnnaBridge 126:abea610beb85 533 #define COMP_BLANKINGSRCE_TIM15OC1 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM15 OC1 selected as blanking source for COMP4 */
AnnaBridge 126:abea610beb85 534 /* Blanking source for COMP6 */
AnnaBridge 126:abea610beb85 535 #define COMP_BLANKINGSRCE_TIM2OC4 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM2 OC4 selected as blanking source for COMP6 */
AnnaBridge 126:abea610beb85 536 #define COMP_BLANKINGSRCE_TIM15OC2 COMP_CSR_COMPxBLANKING_2 /*!< TIM15 OC2 selected as blanking source for COMP6 */
AnnaBridge 126:abea610beb85 537 /**
AnnaBridge 126:abea610beb85 538 * @}
AnnaBridge 126:abea610beb85 539 */
AnnaBridge 126:abea610beb85 540
AnnaBridge 126:abea610beb85 541 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx || */
AnnaBridge 126:abea610beb85 542 /* STM32F303x8 || STM32F334x8 || STM32F328xx */
AnnaBridge 126:abea610beb85 543
AnnaBridge 126:abea610beb85 544 #if defined(STM32F302xE) ||\
AnnaBridge 126:abea610beb85 545 defined(STM32F302xC)
AnnaBridge 126:abea610beb85 546 /** @defgroup COMPEx_BlankingSrce COMP Extended Blanking Source (STM32F302xE/STM32F302xC Product devices)
AnnaBridge 126:abea610beb85 547 * @{
AnnaBridge 126:abea610beb85 548 */
AnnaBridge 126:abea610beb85 549 /* No blanking source can be selected for all comparators */
<> 135:176b8275d35d 550 #define COMP_BLANKINGSRCE_NONE (0x00000000U) /*!< No blanking source */
AnnaBridge 126:abea610beb85 551 /* Blanking source common for COMP1 and COMP2 */
AnnaBridge 126:abea610beb85 552 #define COMP_BLANKINGSRCE_TIM1OC5 COMP_CSR_COMPxBLANKING_0 /*!< TIM1 OC5 selected as blanking source for COMP1 and COMP2 */
AnnaBridge 126:abea610beb85 553 /* Blanking source common for COMP1 and COMP2 */
AnnaBridge 126:abea610beb85 554 #define COMP_BLANKINGSRCE_TIM2OC3 COMP_CSR_COMPxBLANKING_1 /*!< TIM2 OC3 selected as blanking source for COMP1 and COMP2 */
AnnaBridge 126:abea610beb85 555 /* Blanking source common for COMP1 and COMP2 */
AnnaBridge 126:abea610beb85 556 #define COMP_BLANKINGSRCE_TIM3OC3 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM3 OC3 selected as blanking source for COMP1 and COMP2 */
AnnaBridge 126:abea610beb85 557 /* Blanking source for COMP4 */
AnnaBridge 126:abea610beb85 558 #define COMP_BLANKINGSRCE_TIM3OC4 COMP_CSR_COMPxBLANKING_0 /*!< TIM3 OC4 selected as blanking source for COMP4 */
AnnaBridge 126:abea610beb85 559 #define COMP_BLANKINGSRCE_TIM15OC1 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM15 OC1 selected as blanking source for COMP4 */
AnnaBridge 126:abea610beb85 560 /* Blanking source for COMP6 */
AnnaBridge 126:abea610beb85 561 #define COMP_BLANKINGSRCE_TIM2OC4 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM2 OC4 selected as blanking source for COMP6 */
AnnaBridge 126:abea610beb85 562 #define COMP_BLANKINGSRCE_TIM15OC2 COMP_CSR_COMPxBLANKING_2 /*!< TIM15 OC2 selected as blanking source for COMP6 */
AnnaBridge 126:abea610beb85 563 /**
AnnaBridge 126:abea610beb85 564 * @}
AnnaBridge 126:abea610beb85 565 */
AnnaBridge 126:abea610beb85 566
AnnaBridge 126:abea610beb85 567 #endif /* STM32F302xE || */
AnnaBridge 126:abea610beb85 568 /* STM32F302xC */
AnnaBridge 126:abea610beb85 569
AnnaBridge 126:abea610beb85 570 #if defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 571 defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 572 /** @defgroup COMPEx_BlankingSrce COMP Extended Blanking Source (STM32F303xE/STM32F398xx/STM32F303xC/STM32F358xx Product devices)
AnnaBridge 126:abea610beb85 573 * @{
AnnaBridge 126:abea610beb85 574 */
AnnaBridge 126:abea610beb85 575 /* No blanking source can be selected for all comparators */
<> 135:176b8275d35d 576 #define COMP_BLANKINGSRCE_NONE (0x00000000U) /*!< No blanking source */
AnnaBridge 126:abea610beb85 577 /* Blanking source common for COMP1, COMP2, COMP3 and COMP7 */
AnnaBridge 126:abea610beb85 578 #define COMP_BLANKINGSRCE_TIM1OC5 COMP_CSR_COMPxBLANKING_0 /*!< TIM1 OC5 selected as blanking source for COMP1, COMP2, COMP3 and COMP7 */
AnnaBridge 126:abea610beb85 579 /* Blanking source common for COMP1 and COMP2 */
AnnaBridge 126:abea610beb85 580 #define COMP_BLANKINGSRCE_TIM2OC3 COMP_CSR_COMPxBLANKING_1 /*!< TIM2 OC5 selected as blanking source for COMP1 and COMP2 */
AnnaBridge 126:abea610beb85 581 /* Blanking source common for COMP1, COMP2 and COMP5 */
AnnaBridge 126:abea610beb85 582 #define COMP_BLANKINGSRCE_TIM3OC3 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM2 OC3 selected as blanking source for COMP1, COMP2 and COMP5 */
AnnaBridge 126:abea610beb85 583 /* Blanking source common for COMP3 and COMP6 */
AnnaBridge 126:abea610beb85 584 #define COMP_BLANKINGSRCE_TIM2OC4 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM2 OC4 selected as blanking source for COMP3 and COMP6 */
AnnaBridge 126:abea610beb85 585 /* Blanking source common for COMP4, COMP5, COMP6 and COMP7 */
AnnaBridge 126:abea610beb85 586 #define COMP_BLANKINGSRCE_TIM8OC5 COMP_CSR_COMPxBLANKING_1 /*!< TIM8 OC5 selected as blanking source for COMP4, COMP5, COMP6 and COMP7 */
AnnaBridge 126:abea610beb85 587 /* Blanking source for COMP4 */
AnnaBridge 126:abea610beb85 588 #define COMP_BLANKINGSRCE_TIM3OC4 COMP_CSR_COMPxBLANKING_0 /*!< TIM3 OC4 selected as blanking source for COMP4 */
AnnaBridge 126:abea610beb85 589 #define COMP_BLANKINGSRCE_TIM15OC1 (COMP_CSR_COMPxBLANKING_0|COMP_CSR_COMPxBLANKING_1) /*!< TIM15 OC1 selected as blanking source for COMP4 */
AnnaBridge 126:abea610beb85 590 /* Blanking source common for COMP6 and COMP7 */
AnnaBridge 126:abea610beb85 591 #define COMP_BLANKINGSRCE_TIM15OC2 COMP_CSR_COMPxBLANKING_2 /*!< TIM15 OC2 selected as blanking source for COMP6 and COMP7 */
AnnaBridge 126:abea610beb85 592 /**
AnnaBridge 126:abea610beb85 593 * @}
AnnaBridge 126:abea610beb85 594 */
AnnaBridge 126:abea610beb85 595
AnnaBridge 126:abea610beb85 596 #endif /* STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 597 /* STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 598
AnnaBridge 126:abea610beb85 599 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 600 /** @defgroup COMPEx_BlankingSrce COMP Extended Blanking Source (STM32F373xC/STM32F378xx Product devices)
AnnaBridge 126:abea610beb85 601 * @{
AnnaBridge 126:abea610beb85 602 */
AnnaBridge 126:abea610beb85 603 /* No blanking source can be selected for all comparators */
<> 135:176b8275d35d 604 #define COMP_BLANKINGSRCE_NONE (0x00000000U) /*!< No blanking source */
AnnaBridge 126:abea610beb85 605 /**
AnnaBridge 126:abea610beb85 606 * @}
AnnaBridge 126:abea610beb85 607 */
AnnaBridge 126:abea610beb85 608
AnnaBridge 126:abea610beb85 609 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 610
AnnaBridge 126:abea610beb85 611 /** @defgroup COMP_Flag COMP Flag
AnnaBridge 126:abea610beb85 612 * @{
AnnaBridge 126:abea610beb85 613 */
AnnaBridge 126:abea610beb85 614 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 615 #define COMP_FLAG_LOCK COMP_CSR_COMP1LOCK /*!< Lock flag */
AnnaBridge 126:abea610beb85 616 #else
AnnaBridge 126:abea610beb85 617 #define COMP_FLAG_LOCK COMP_CSR_LOCK /*!< Lock flag */
AnnaBridge 126:abea610beb85 618 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 619 /**
AnnaBridge 126:abea610beb85 620 * @}
AnnaBridge 126:abea610beb85 621 */
AnnaBridge 126:abea610beb85 622
AnnaBridge 126:abea610beb85 623
AnnaBridge 126:abea610beb85 624 /**
AnnaBridge 126:abea610beb85 625 * @}
AnnaBridge 126:abea610beb85 626 */
AnnaBridge 126:abea610beb85 627
AnnaBridge 126:abea610beb85 628 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 629 /** @defgroup COMPEx_Exported_Macros COMP Extended Exported Macros
AnnaBridge 126:abea610beb85 630 * @{
AnnaBridge 126:abea610beb85 631 */
AnnaBridge 126:abea610beb85 632 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 633
AnnaBridge 126:abea610beb85 634 /**
AnnaBridge 126:abea610beb85 635 * @brief Enable the specified comparator.
AnnaBridge 126:abea610beb85 636 * @param __HANDLE__ COMP handle.
AnnaBridge 126:abea610beb85 637 * @retval None
AnnaBridge 126:abea610beb85 638 */
AnnaBridge 126:abea610beb85 639 #define __HAL_COMP_ENABLE(__HANDLE__) \
AnnaBridge 126:abea610beb85 640 do { \
AnnaBridge 126:abea610beb85 641 uint32_t regshift = COMP_CSR_COMP1_SHIFT; \
AnnaBridge 126:abea610beb85 642 \
AnnaBridge 126:abea610beb85 643 if((__HANDLE__)->Instance == COMP2) \
AnnaBridge 126:abea610beb85 644 { \
AnnaBridge 126:abea610beb85 645 regshift = COMP_CSR_COMP2_SHIFT; \
AnnaBridge 126:abea610beb85 646 } \
AnnaBridge 126:abea610beb85 647 SET_BIT(COMP->CSR, (uint32_t)COMP_CSR_COMPxEN << regshift); \
<> 135:176b8275d35d 648 } while(0U)
AnnaBridge 126:abea610beb85 649
AnnaBridge 126:abea610beb85 650 /**
AnnaBridge 126:abea610beb85 651 * @brief Disable the specified comparator.
AnnaBridge 126:abea610beb85 652 * @param __HANDLE__ COMP handle.
AnnaBridge 126:abea610beb85 653 * @retval None
AnnaBridge 126:abea610beb85 654 */
AnnaBridge 126:abea610beb85 655 #define __HAL_COMP_DISABLE(__HANDLE__) \
AnnaBridge 126:abea610beb85 656 do { \
AnnaBridge 126:abea610beb85 657 uint32_t regshift = COMP_CSR_COMP1_SHIFT; \
AnnaBridge 126:abea610beb85 658 \
AnnaBridge 126:abea610beb85 659 if((__HANDLE__)->Instance == COMP2) \
AnnaBridge 126:abea610beb85 660 { \
AnnaBridge 126:abea610beb85 661 regshift = COMP_CSR_COMP2_SHIFT; \
AnnaBridge 126:abea610beb85 662 } \
AnnaBridge 126:abea610beb85 663 CLEAR_BIT(COMP->CSR, (uint32_t)COMP_CSR_COMPxEN << regshift); \
<> 135:176b8275d35d 664 } while(0U)
AnnaBridge 126:abea610beb85 665
AnnaBridge 126:abea610beb85 666 /**
AnnaBridge 126:abea610beb85 667 * @brief Lock a comparator instance
AnnaBridge 126:abea610beb85 668 * @param __HANDLE__ COMP handle
AnnaBridge 126:abea610beb85 669 * @retval None.
AnnaBridge 126:abea610beb85 670 */
AnnaBridge 126:abea610beb85 671 #define __HAL_COMP_LOCK(__HANDLE__) \
AnnaBridge 126:abea610beb85 672 do { \
AnnaBridge 126:abea610beb85 673 uint32_t regshift = COMP_CSR_COMP1_SHIFT; \
AnnaBridge 126:abea610beb85 674 \
AnnaBridge 126:abea610beb85 675 if((__HANDLE__)->Instance == COMP2) \
AnnaBridge 126:abea610beb85 676 { \
AnnaBridge 126:abea610beb85 677 regshift = COMP_CSR_COMP2_SHIFT; \
AnnaBridge 126:abea610beb85 678 } \
AnnaBridge 126:abea610beb85 679 SET_BIT(COMP->CSR, (uint32_t)COMP_CSR_COMPxLOCK << regshift); \
<> 135:176b8275d35d 680 } while(0U)
AnnaBridge 126:abea610beb85 681
AnnaBridge 126:abea610beb85 682 /** @brief Check whether the specified COMP flag is set or not.
AnnaBridge 126:abea610beb85 683 * @param __HANDLE__ COMP Handle.
AnnaBridge 126:abea610beb85 684 * @param __FLAG__ flag to check.
AnnaBridge 126:abea610beb85 685 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 686 * @arg @ref COMP_FLAG_LOCK lock flag
AnnaBridge 126:abea610beb85 687 * @retval The new state of __FLAG__ (TRUE or FALSE).
AnnaBridge 126:abea610beb85 688 */
AnnaBridge 126:abea610beb85 689 #define __HAL_COMP_GET_FLAG(__HANDLE__, __FLAG__) \
AnnaBridge 126:abea610beb85 690 (((__HANDLE__)->Instance == COMP1) ? (((__HANDLE__)->Instance->CSR & (__FLAG__)) == (__FLAG__)) \
AnnaBridge 126:abea610beb85 691 (((__HANDLE__)->Instance->CSR & (uint32_t)((__FLAG__) << COMP_CSR_COMP2_SHIFT) == (__FLAG__))))
AnnaBridge 126:abea610beb85 692
AnnaBridge 126:abea610beb85 693 #else
AnnaBridge 126:abea610beb85 694
AnnaBridge 126:abea610beb85 695 /**
AnnaBridge 126:abea610beb85 696 * @brief Enable the specified comparator.
AnnaBridge 126:abea610beb85 697 * @param __HANDLE__ COMP handle.
AnnaBridge 126:abea610beb85 698 * @retval None
AnnaBridge 126:abea610beb85 699 */
AnnaBridge 126:abea610beb85 700 #define __HAL_COMP_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CSR, COMP_CSR_COMPxEN)
AnnaBridge 126:abea610beb85 701
AnnaBridge 126:abea610beb85 702 /**
AnnaBridge 126:abea610beb85 703 * @brief Disable the specified comparator.
AnnaBridge 126:abea610beb85 704 * @param __HANDLE__ COMP handle.
AnnaBridge 126:abea610beb85 705 * @retval None
AnnaBridge 126:abea610beb85 706 */
AnnaBridge 126:abea610beb85 707 #define __HAL_COMP_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CSR, COMP_CSR_COMPxEN)
AnnaBridge 126:abea610beb85 708
AnnaBridge 126:abea610beb85 709 /**
AnnaBridge 126:abea610beb85 710 * @brief Lock a comparator instance
AnnaBridge 126:abea610beb85 711 * @param __HANDLE__ COMP handle
AnnaBridge 126:abea610beb85 712 * @retval None.
AnnaBridge 126:abea610beb85 713 */
AnnaBridge 126:abea610beb85 714 #define __HAL_COMP_LOCK(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CSR, COMP_CSR_COMPxLOCK)
AnnaBridge 126:abea610beb85 715
AnnaBridge 126:abea610beb85 716 /** @brief Check whether the specified COMP flag is set or not.
AnnaBridge 126:abea610beb85 717 * @param __HANDLE__ COMP Handle.
AnnaBridge 126:abea610beb85 718 * @param __FLAG__ flag to check.
AnnaBridge 126:abea610beb85 719 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 720 * @arg @ref COMP_FLAG_LOCK lock flag
AnnaBridge 126:abea610beb85 721 * @retval The new state of __FLAG__ (TRUE or FALSE).
AnnaBridge 126:abea610beb85 722 */
AnnaBridge 126:abea610beb85 723 #define __HAL_COMP_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->CSR & (__FLAG__)) == (__FLAG__))
AnnaBridge 126:abea610beb85 724
AnnaBridge 126:abea610beb85 725 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 726
AnnaBridge 126:abea610beb85 727 #if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
AnnaBridge 126:abea610beb85 728 defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 729 defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 730
AnnaBridge 126:abea610beb85 731 /**
AnnaBridge 126:abea610beb85 732 * @brief Enable the COMP1 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 733 * @retval None
AnnaBridge 126:abea610beb85 734 */
AnnaBridge 126:abea610beb85 735 #define __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 736
AnnaBridge 126:abea610beb85 737 /**
AnnaBridge 126:abea610beb85 738 * @brief Disable the COMP1 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 739 * @retval None
AnnaBridge 126:abea610beb85 740 */
AnnaBridge 126:abea610beb85 741 #define __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 742
AnnaBridge 126:abea610beb85 743 /**
AnnaBridge 126:abea610beb85 744 * @brief Enable the COMP1 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 745 * @retval None
AnnaBridge 126:abea610beb85 746 */
AnnaBridge 126:abea610beb85 747 #define __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 748
AnnaBridge 126:abea610beb85 749 /**
AnnaBridge 126:abea610beb85 750 * @brief Disable the COMP1 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 751 * @retval None
AnnaBridge 126:abea610beb85 752 */
AnnaBridge 126:abea610beb85 753 #define __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 754
AnnaBridge 126:abea610beb85 755 /**
AnnaBridge 126:abea610beb85 756 * @brief Enable the COMP1 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 757 * @retval None
AnnaBridge 126:abea610beb85 758 */
AnnaBridge 126:abea610beb85 759 #define __HAL_COMP_COMP1_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 760 __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 761 __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 762 } while(0U)
AnnaBridge 126:abea610beb85 763
AnnaBridge 126:abea610beb85 764 /**
AnnaBridge 126:abea610beb85 765 * @brief Disable the COMP1 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 766 * @retval None
AnnaBridge 126:abea610beb85 767 */
AnnaBridge 126:abea610beb85 768 #define __HAL_COMP_COMP1_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 769 __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 770 __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 771 } while(0U)
AnnaBridge 126:abea610beb85 772
AnnaBridge 126:abea610beb85 773 /**
AnnaBridge 126:abea610beb85 774 * @brief Enable the COMP1 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 775 * @retval None
AnnaBridge 126:abea610beb85 776 */
AnnaBridge 126:abea610beb85 777 #define __HAL_COMP_COMP1_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 778
AnnaBridge 126:abea610beb85 779 /**
AnnaBridge 126:abea610beb85 780 * @brief Disable the COMP1 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 781 * @retval None
AnnaBridge 126:abea610beb85 782 */
AnnaBridge 126:abea610beb85 783 #define __HAL_COMP_COMP1_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 784
AnnaBridge 126:abea610beb85 785 /**
AnnaBridge 126:abea610beb85 786 * @brief Generate a software interrupt on the COMP1 EXTI line.
AnnaBridge 126:abea610beb85 787 * @retval None
AnnaBridge 126:abea610beb85 788 */
AnnaBridge 126:abea610beb85 789 #define __HAL_COMP_COMP1_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 790
AnnaBridge 126:abea610beb85 791 /**
AnnaBridge 126:abea610beb85 792 * @brief Enable the COMP1 EXTI line in event mode.
AnnaBridge 126:abea610beb85 793 * @retval None
AnnaBridge 126:abea610beb85 794 */
AnnaBridge 126:abea610beb85 795 #define __HAL_COMP_COMP1_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 796
AnnaBridge 126:abea610beb85 797 /**
AnnaBridge 126:abea610beb85 798 * @brief Disable the COMP1 EXTI line in event mode.
AnnaBridge 126:abea610beb85 799 * @retval None
AnnaBridge 126:abea610beb85 800 */
AnnaBridge 126:abea610beb85 801 #define __HAL_COMP_COMP1_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 802
AnnaBridge 126:abea610beb85 803 /**
AnnaBridge 126:abea610beb85 804 * @brief Check whether the COMP1 EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 805 * @retval RESET or SET
AnnaBridge 126:abea610beb85 806 */
AnnaBridge 126:abea610beb85 807 #define __HAL_COMP_COMP1_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 808
AnnaBridge 126:abea610beb85 809 /**
AnnaBridge 126:abea610beb85 810 * @brief Clear the COMP1 EXTI flag.
AnnaBridge 126:abea610beb85 811 * @retval None
AnnaBridge 126:abea610beb85 812 */
AnnaBridge 126:abea610beb85 813 #define __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP1)
AnnaBridge 126:abea610beb85 814
AnnaBridge 126:abea610beb85 815 #endif /* STM32F302xC || STM32F303xC || STM32F358xx || */
AnnaBridge 126:abea610beb85 816 /* STM32F302xE || STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 817 /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 818
AnnaBridge 126:abea610beb85 819 /**
AnnaBridge 126:abea610beb85 820 * @brief Enable the COMP2 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 821 * @retval None
AnnaBridge 126:abea610beb85 822 */
AnnaBridge 126:abea610beb85 823 #define __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 824
AnnaBridge 126:abea610beb85 825 /**
AnnaBridge 126:abea610beb85 826 * @brief Disable the COMP2 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 827 * @retval None
AnnaBridge 126:abea610beb85 828 */
AnnaBridge 126:abea610beb85 829 #define __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 830
AnnaBridge 126:abea610beb85 831 /**
AnnaBridge 126:abea610beb85 832 * @brief Enable the COMP2 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 833 * @retval None
AnnaBridge 126:abea610beb85 834 */
AnnaBridge 126:abea610beb85 835 #define __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 836
AnnaBridge 126:abea610beb85 837 /**
AnnaBridge 126:abea610beb85 838 * @brief Disable the COMP2 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 839 * @retval None
AnnaBridge 126:abea610beb85 840 */
AnnaBridge 126:abea610beb85 841 #define __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 842
AnnaBridge 126:abea610beb85 843 /**
AnnaBridge 126:abea610beb85 844 * @brief Enable the COMP2 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 845 * @retval None
AnnaBridge 126:abea610beb85 846 */
AnnaBridge 126:abea610beb85 847 #define __HAL_COMP_COMP2_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 848 __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 849 __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 850 } while(0U)
AnnaBridge 126:abea610beb85 851
AnnaBridge 126:abea610beb85 852 /**
AnnaBridge 126:abea610beb85 853 * @brief Disable the COMP2 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 854 * @retval None
AnnaBridge 126:abea610beb85 855 */
AnnaBridge 126:abea610beb85 856 #define __HAL_COMP_COMP2_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 857 __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 858 __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 859 } while(0U)
AnnaBridge 126:abea610beb85 860
AnnaBridge 126:abea610beb85 861 /**
AnnaBridge 126:abea610beb85 862 * @brief Enable the COMP2 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 863 * @retval None
AnnaBridge 126:abea610beb85 864 */
AnnaBridge 126:abea610beb85 865 #define __HAL_COMP_COMP2_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 866
AnnaBridge 126:abea610beb85 867 /**
AnnaBridge 126:abea610beb85 868 * @brief Disable the COMP2 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 869 * @retval None
AnnaBridge 126:abea610beb85 870 */
AnnaBridge 126:abea610beb85 871 #define __HAL_COMP_COMP2_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 872
AnnaBridge 126:abea610beb85 873 /**
AnnaBridge 126:abea610beb85 874 * @brief Generate a software interrupt on the COMP2 EXTI line.
AnnaBridge 126:abea610beb85 875 * @retval None
AnnaBridge 126:abea610beb85 876 */
AnnaBridge 126:abea610beb85 877 #define __HAL_COMP_COMP2_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 878
AnnaBridge 126:abea610beb85 879 /**
AnnaBridge 126:abea610beb85 880 * @brief Enable the COMP2 EXTI line in event mode.
AnnaBridge 126:abea610beb85 881 * @retval None
AnnaBridge 126:abea610beb85 882 */
AnnaBridge 126:abea610beb85 883 #define __HAL_COMP_COMP2_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 884
AnnaBridge 126:abea610beb85 885 /**
AnnaBridge 126:abea610beb85 886 * @brief Disable the COMP2 EXTI line in event mode.
AnnaBridge 126:abea610beb85 887 * @retval None
AnnaBridge 126:abea610beb85 888 */
AnnaBridge 126:abea610beb85 889 #define __HAL_COMP_COMP2_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 890
AnnaBridge 126:abea610beb85 891 /**
AnnaBridge 126:abea610beb85 892 * @brief Check whether the COMP2 EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 893 * @retval RESET or SET
AnnaBridge 126:abea610beb85 894 */
AnnaBridge 126:abea610beb85 895 #define __HAL_COMP_COMP2_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 896
AnnaBridge 126:abea610beb85 897 /**
AnnaBridge 126:abea610beb85 898 * @brief Clear the COMP2 EXTI flag.
AnnaBridge 126:abea610beb85 899 * @retval None
AnnaBridge 126:abea610beb85 900 */
AnnaBridge 126:abea610beb85 901 #define __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 902
AnnaBridge 126:abea610beb85 903 #if defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 904 defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 905
AnnaBridge 126:abea610beb85 906 /**
AnnaBridge 126:abea610beb85 907 * @brief Enable the COMP3 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 908 * @retval None
AnnaBridge 126:abea610beb85 909 */
AnnaBridge 126:abea610beb85 910 #define __HAL_COMP_COMP3_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 911
AnnaBridge 126:abea610beb85 912 /**
AnnaBridge 126:abea610beb85 913 * @brief Disable the COMP3 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 914 * @retval None
AnnaBridge 126:abea610beb85 915 */
AnnaBridge 126:abea610beb85 916 #define __HAL_COMP_COMP3_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 917
AnnaBridge 126:abea610beb85 918 /**
AnnaBridge 126:abea610beb85 919 * @brief Enable the COMP3 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 920 * @retval None
AnnaBridge 126:abea610beb85 921 */
AnnaBridge 126:abea610beb85 922 #define __HAL_COMP_COMP3_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 923
AnnaBridge 126:abea610beb85 924 /**
AnnaBridge 126:abea610beb85 925 * @brief Disable the COMP3 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 926 * @retval None
AnnaBridge 126:abea610beb85 927 */
AnnaBridge 126:abea610beb85 928 #define __HAL_COMP_COMP3_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 929
AnnaBridge 126:abea610beb85 930 /**
AnnaBridge 126:abea610beb85 931 * @brief Enable the COMP3 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 932 * @retval None
AnnaBridge 126:abea610beb85 933 */
AnnaBridge 126:abea610beb85 934 #define __HAL_COMP_COMP3_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 935 __HAL_COMP_COMP3_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 936 __HAL_COMP_COMP3_EXTI_ENABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 937 } while(0U)
AnnaBridge 126:abea610beb85 938
AnnaBridge 126:abea610beb85 939 /**
AnnaBridge 126:abea610beb85 940 * @brief Disable the COMP3 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 941 * @retval None
AnnaBridge 126:abea610beb85 942 */
AnnaBridge 126:abea610beb85 943 #define __HAL_COMP_COMP3_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 944 __HAL_COMP_COMP3_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 945 __HAL_COMP_COMP3_EXTI_DISABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 946 } while(0U)
AnnaBridge 126:abea610beb85 947
AnnaBridge 126:abea610beb85 948 /**
AnnaBridge 126:abea610beb85 949 * @brief Enable the COMP3 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 950 * @retval None
AnnaBridge 126:abea610beb85 951 */
AnnaBridge 126:abea610beb85 952 #define __HAL_COMP_COMP3_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 953
AnnaBridge 126:abea610beb85 954 /**
AnnaBridge 126:abea610beb85 955 * @brief Disable the COMP3 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 956 * @retval None
AnnaBridge 126:abea610beb85 957 */
AnnaBridge 126:abea610beb85 958 #define __HAL_COMP_COMP3_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 959
AnnaBridge 126:abea610beb85 960 /**
AnnaBridge 126:abea610beb85 961 * @brief Generate a software interrupt on the COMP3 EXTI line.
AnnaBridge 126:abea610beb85 962 * @retval None
AnnaBridge 126:abea610beb85 963 */
AnnaBridge 126:abea610beb85 964 #define __HAL_COMP_COMP3_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 965
AnnaBridge 126:abea610beb85 966 /**
AnnaBridge 126:abea610beb85 967 * @brief Enable the COMP3 EXTI line in event mode.
AnnaBridge 126:abea610beb85 968 * @retval None
AnnaBridge 126:abea610beb85 969 */
AnnaBridge 126:abea610beb85 970 #define __HAL_COMP_COMP3_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 971
AnnaBridge 126:abea610beb85 972 /**
AnnaBridge 126:abea610beb85 973 * @brief Disable the COMP3 EXTI line in event mode.
AnnaBridge 126:abea610beb85 974 * @retval None
AnnaBridge 126:abea610beb85 975 */
AnnaBridge 126:abea610beb85 976 #define __HAL_COMP_COMP3_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 977
AnnaBridge 126:abea610beb85 978 /**
AnnaBridge 126:abea610beb85 979 * @brief Check whether the COMP3 EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 980 * @retval RESET or SET
AnnaBridge 126:abea610beb85 981 */
AnnaBridge 126:abea610beb85 982 #define __HAL_COMP_COMP3_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 983
AnnaBridge 126:abea610beb85 984 /**
AnnaBridge 126:abea610beb85 985 * @brief Clear the COMP3 EXTI flag.
AnnaBridge 126:abea610beb85 986 * @retval None
AnnaBridge 126:abea610beb85 987 */
AnnaBridge 126:abea610beb85 988 #define __HAL_COMP_COMP3_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP3)
AnnaBridge 126:abea610beb85 989
AnnaBridge 126:abea610beb85 990 #endif /* STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 991 /* STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 992
AnnaBridge 126:abea610beb85 993 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || \
AnnaBridge 126:abea610beb85 994 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
AnnaBridge 126:abea610beb85 995 defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 996 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 997
AnnaBridge 126:abea610beb85 998 /**
AnnaBridge 126:abea610beb85 999 * @brief Enable the COMP4 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 1000 * @retval None
AnnaBridge 126:abea610beb85 1001 */
AnnaBridge 126:abea610beb85 1002 #define __HAL_COMP_COMP4_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1003
AnnaBridge 126:abea610beb85 1004 /**
AnnaBridge 126:abea610beb85 1005 * @brief Disable the COMP4 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 1006 * @retval None
AnnaBridge 126:abea610beb85 1007 */
AnnaBridge 126:abea610beb85 1008 #define __HAL_COMP_COMP4_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1009
AnnaBridge 126:abea610beb85 1010 /**
AnnaBridge 126:abea610beb85 1011 * @brief Enable the COMP4 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 1012 * @retval None
AnnaBridge 126:abea610beb85 1013 */
AnnaBridge 126:abea610beb85 1014 #define __HAL_COMP_COMP4_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1015
AnnaBridge 126:abea610beb85 1016 /**
AnnaBridge 126:abea610beb85 1017 * @brief Disable the COMP4 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 1018 * @retval None
AnnaBridge 126:abea610beb85 1019 */
AnnaBridge 126:abea610beb85 1020 #define __HAL_COMP_COMP4_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1021
AnnaBridge 126:abea610beb85 1022 /**
AnnaBridge 126:abea610beb85 1023 * @brief Enable the COMP4 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 1024 * @retval None
AnnaBridge 126:abea610beb85 1025 */
AnnaBridge 126:abea610beb85 1026 #define __HAL_COMP_COMP4_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 1027 __HAL_COMP_COMP4_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 1028 __HAL_COMP_COMP4_EXTI_ENABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 1029 } while(0U)
AnnaBridge 126:abea610beb85 1030
AnnaBridge 126:abea610beb85 1031 /**
AnnaBridge 126:abea610beb85 1032 * @brief Disable the COMP4 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 1033 * @retval None
AnnaBridge 126:abea610beb85 1034 */
AnnaBridge 126:abea610beb85 1035 #define __HAL_COMP_COMP4_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 1036 __HAL_COMP_COMP4_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 1037 __HAL_COMP_COMP4_EXTI_DISABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 1038 } while(0U)
AnnaBridge 126:abea610beb85 1039
AnnaBridge 126:abea610beb85 1040 /**
AnnaBridge 126:abea610beb85 1041 * @brief Enable the COMP4 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 1042 * @retval None
AnnaBridge 126:abea610beb85 1043 */
AnnaBridge 126:abea610beb85 1044 #define __HAL_COMP_COMP4_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1045
AnnaBridge 126:abea610beb85 1046 /**
AnnaBridge 126:abea610beb85 1047 * @brief Disable the COMP4 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 1048 * @retval None
AnnaBridge 126:abea610beb85 1049 */
AnnaBridge 126:abea610beb85 1050 #define __HAL_COMP_COMP4_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1051
AnnaBridge 126:abea610beb85 1052 /**
AnnaBridge 126:abea610beb85 1053 * @brief Generate a software interrupt on the COMP4 EXTI line.
AnnaBridge 126:abea610beb85 1054 * @retval None
AnnaBridge 126:abea610beb85 1055 */
AnnaBridge 126:abea610beb85 1056 #define __HAL_COMP_COMP4_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1057
AnnaBridge 126:abea610beb85 1058 /**
AnnaBridge 126:abea610beb85 1059 * @brief Enable the COMP4 EXTI line in event mode.
AnnaBridge 126:abea610beb85 1060 * @retval None
AnnaBridge 126:abea610beb85 1061 */
AnnaBridge 126:abea610beb85 1062 #define __HAL_COMP_COMP4_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1063
AnnaBridge 126:abea610beb85 1064 /**
AnnaBridge 126:abea610beb85 1065 * @brief Disable the COMP4 EXTI line in event mode.
AnnaBridge 126:abea610beb85 1066 * @retval None
AnnaBridge 126:abea610beb85 1067 */
AnnaBridge 126:abea610beb85 1068 #define __HAL_COMP_COMP4_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1069
AnnaBridge 126:abea610beb85 1070 /**
AnnaBridge 126:abea610beb85 1071 * @brief Check whether the COMP4 EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 1072 * @retval RESET or SET
AnnaBridge 126:abea610beb85 1073 */
AnnaBridge 126:abea610beb85 1074 #define __HAL_COMP_COMP4_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1075
AnnaBridge 126:abea610beb85 1076 /**
AnnaBridge 126:abea610beb85 1077 * @brief Clear the COMP4 EXTI flag.
AnnaBridge 126:abea610beb85 1078 * @retval None
AnnaBridge 126:abea610beb85 1079 */
AnnaBridge 126:abea610beb85 1080 #define __HAL_COMP_COMP4_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP4)
AnnaBridge 126:abea610beb85 1081
AnnaBridge 126:abea610beb85 1082 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx || */
AnnaBridge 126:abea610beb85 1083 /* STM32F302xC || STM32F303xC || STM32F358xx || */
AnnaBridge 126:abea610beb85 1084 /* STM32F302xE || STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 1085 /* STM32F303x8 || STM32F334x8 || STM32F328xx */
AnnaBridge 126:abea610beb85 1086
AnnaBridge 126:abea610beb85 1087 #if defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 1088 defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 1089
AnnaBridge 126:abea610beb85 1090 /**
AnnaBridge 126:abea610beb85 1091 * @brief Enable the COMP5 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 1092 * @retval None
AnnaBridge 126:abea610beb85 1093 */
AnnaBridge 126:abea610beb85 1094 #define __HAL_COMP_COMP5_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1095
AnnaBridge 126:abea610beb85 1096 /**
AnnaBridge 126:abea610beb85 1097 * @brief Disable the COMP5 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 1098 * @retval None
AnnaBridge 126:abea610beb85 1099 */
AnnaBridge 126:abea610beb85 1100 #define __HAL_COMP_COMP5_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1101
AnnaBridge 126:abea610beb85 1102 /**
AnnaBridge 126:abea610beb85 1103 * @brief Enable the COMP5 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 1104 * @retval None
AnnaBridge 126:abea610beb85 1105 */
AnnaBridge 126:abea610beb85 1106 #define __HAL_COMP_COMP5_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1107
AnnaBridge 126:abea610beb85 1108 /**
AnnaBridge 126:abea610beb85 1109 * @brief Disable the COMP5 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 1110 * @retval None
AnnaBridge 126:abea610beb85 1111 */
AnnaBridge 126:abea610beb85 1112 #define __HAL_COMP_COMP5_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1113
AnnaBridge 126:abea610beb85 1114 /**
AnnaBridge 126:abea610beb85 1115 * @brief Enable the COMP5 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 1116 * @retval None
AnnaBridge 126:abea610beb85 1117 */
AnnaBridge 126:abea610beb85 1118 #define __HAL_COMP_COMP5_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 1119 __HAL_COMP_COMP5_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 1120 __HAL_COMP_COMP5_EXTI_ENABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 1121 } while(0U)
AnnaBridge 126:abea610beb85 1122
AnnaBridge 126:abea610beb85 1123 /**
AnnaBridge 126:abea610beb85 1124 * @brief Disable the COMP5 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 1125 * @retval None
AnnaBridge 126:abea610beb85 1126 */
AnnaBridge 126:abea610beb85 1127 #define __HAL_COMP_COMP5_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 1128 __HAL_COMP_COMP5_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 1129 __HAL_COMP_COMP5_EXTI_DISABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 1130 } while(0U)
AnnaBridge 126:abea610beb85 1131
AnnaBridge 126:abea610beb85 1132 /**
AnnaBridge 126:abea610beb85 1133 * @brief Enable the COMP5 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 1134 * @retval None
AnnaBridge 126:abea610beb85 1135 */
AnnaBridge 126:abea610beb85 1136 #define __HAL_COMP_COMP5_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1137
AnnaBridge 126:abea610beb85 1138 /**
AnnaBridge 126:abea610beb85 1139 * @brief Disable the COMP5 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 1140 * @retval None
AnnaBridge 126:abea610beb85 1141 */
AnnaBridge 126:abea610beb85 1142 #define __HAL_COMP_COMP5_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1143
AnnaBridge 126:abea610beb85 1144 /**
AnnaBridge 126:abea610beb85 1145 * @brief Generate a software interrupt on the COMP5 EXTI line.
AnnaBridge 126:abea610beb85 1146 * @retval None
AnnaBridge 126:abea610beb85 1147 */
AnnaBridge 126:abea610beb85 1148 #define __HAL_COMP_COMP5_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1149
AnnaBridge 126:abea610beb85 1150 /**
AnnaBridge 126:abea610beb85 1151 * @brief Enable the COMP5 EXTI line in event mode.
AnnaBridge 126:abea610beb85 1152 * @retval None
AnnaBridge 126:abea610beb85 1153 */
AnnaBridge 126:abea610beb85 1154 #define __HAL_COMP_COMP5_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1155
AnnaBridge 126:abea610beb85 1156 /**
AnnaBridge 126:abea610beb85 1157 * @brief Disable the COMP5 EXTI line in event mode.
AnnaBridge 126:abea610beb85 1158 * @retval None
AnnaBridge 126:abea610beb85 1159 */
AnnaBridge 126:abea610beb85 1160 #define __HAL_COMP_COMP5_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1161
AnnaBridge 126:abea610beb85 1162 /**
AnnaBridge 126:abea610beb85 1163 * @brief Check whether the COMP5 EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 1164 * @retval RESET or SET
AnnaBridge 126:abea610beb85 1165 */
AnnaBridge 126:abea610beb85 1166 #define __HAL_COMP_COMP5_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1167
AnnaBridge 126:abea610beb85 1168 /**
AnnaBridge 126:abea610beb85 1169 * @brief Clear the COMP5 EXTI flag.
AnnaBridge 126:abea610beb85 1170 * @retval None
AnnaBridge 126:abea610beb85 1171 */
AnnaBridge 126:abea610beb85 1172 #define __HAL_COMP_COMP5_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP5)
AnnaBridge 126:abea610beb85 1173
AnnaBridge 126:abea610beb85 1174 #endif /* STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 1175 /* STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 1176
AnnaBridge 126:abea610beb85 1177 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || \
AnnaBridge 126:abea610beb85 1178 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
AnnaBridge 126:abea610beb85 1179 defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 1180 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 1181
AnnaBridge 126:abea610beb85 1182 /**
AnnaBridge 126:abea610beb85 1183 * @brief Enable the COMP6 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 1184 * @retval None
AnnaBridge 126:abea610beb85 1185 */
AnnaBridge 126:abea610beb85 1186 #define __HAL_COMP_COMP6_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1187
AnnaBridge 126:abea610beb85 1188 /**
AnnaBridge 126:abea610beb85 1189 * @brief Disable the COMP6 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 1190 * @retval None
AnnaBridge 126:abea610beb85 1191 */
AnnaBridge 126:abea610beb85 1192 #define __HAL_COMP_COMP6_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1193
AnnaBridge 126:abea610beb85 1194 /**
AnnaBridge 126:abea610beb85 1195 * @brief Enable the COMP6 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 1196 * @retval None
AnnaBridge 126:abea610beb85 1197 */
AnnaBridge 126:abea610beb85 1198 #define __HAL_COMP_COMP6_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1199
AnnaBridge 126:abea610beb85 1200 /**
AnnaBridge 126:abea610beb85 1201 * @brief Disable the COMP6 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 1202 * @retval None
AnnaBridge 126:abea610beb85 1203 */
AnnaBridge 126:abea610beb85 1204 #define __HAL_COMP_COMP6_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1205
AnnaBridge 126:abea610beb85 1206 /**
AnnaBridge 126:abea610beb85 1207 * @brief Enable the COMP6 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 1208 * @retval None
AnnaBridge 126:abea610beb85 1209 */
AnnaBridge 126:abea610beb85 1210 #define __HAL_COMP_COMP6_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 1211 __HAL_COMP_COMP6_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 1212 __HAL_COMP_COMP6_EXTI_ENABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 1213 } while(0U)
AnnaBridge 126:abea610beb85 1214
AnnaBridge 126:abea610beb85 1215 /**
AnnaBridge 126:abea610beb85 1216 * @brief Disable the COMP6 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 1217 * @retval None
AnnaBridge 126:abea610beb85 1218 */
AnnaBridge 126:abea610beb85 1219 #define __HAL_COMP_COMP6_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 1220 __HAL_COMP_COMP6_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 1221 __HAL_COMP_COMP6_EXTI_DISABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 1222 } while(0U)
AnnaBridge 126:abea610beb85 1223
AnnaBridge 126:abea610beb85 1224 /**
AnnaBridge 126:abea610beb85 1225 * @brief Enable the COMP6 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 1226 * @retval None
AnnaBridge 126:abea610beb85 1227 */
AnnaBridge 126:abea610beb85 1228 #define __HAL_COMP_COMP6_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1229
AnnaBridge 126:abea610beb85 1230 /**
AnnaBridge 126:abea610beb85 1231 * @brief Disable the COMP6 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 1232 * @retval None
AnnaBridge 126:abea610beb85 1233 */
AnnaBridge 126:abea610beb85 1234 #define __HAL_COMP_COMP6_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1235
AnnaBridge 126:abea610beb85 1236 /**
AnnaBridge 126:abea610beb85 1237 * @brief Generate a software interrupt on the COMP6 EXTI line.
AnnaBridge 126:abea610beb85 1238 * @retval None
AnnaBridge 126:abea610beb85 1239 */
AnnaBridge 126:abea610beb85 1240 #define __HAL_COMP_COMP6_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1241
AnnaBridge 126:abea610beb85 1242 /**
AnnaBridge 126:abea610beb85 1243 * @brief Enable the COMP6 EXTI line in event mode.
AnnaBridge 126:abea610beb85 1244 * @retval None
AnnaBridge 126:abea610beb85 1245 */
AnnaBridge 126:abea610beb85 1246 #define __HAL_COMP_COMP6_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1247
AnnaBridge 126:abea610beb85 1248 /**
AnnaBridge 126:abea610beb85 1249 * @brief Disable the COMP6 EXTI line in event mode.
AnnaBridge 126:abea610beb85 1250 * @retval None
AnnaBridge 126:abea610beb85 1251 */
AnnaBridge 126:abea610beb85 1252 #define __HAL_COMP_COMP6_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1253
AnnaBridge 126:abea610beb85 1254 /**
AnnaBridge 126:abea610beb85 1255 * @brief Check whether the COMP6 EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 1256 * @retval RESET or SET
AnnaBridge 126:abea610beb85 1257 */
AnnaBridge 126:abea610beb85 1258 #define __HAL_COMP_COMP6_EXTI_GET_FLAG() READ_BIT(EXTI->PR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1259
AnnaBridge 126:abea610beb85 1260 /**
AnnaBridge 126:abea610beb85 1261 * @brief Clear the COMP6 EXTI flag.
AnnaBridge 126:abea610beb85 1262 * @retval None
AnnaBridge 126:abea610beb85 1263 */
AnnaBridge 126:abea610beb85 1264 #define __HAL_COMP_COMP6_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1265
AnnaBridge 126:abea610beb85 1266 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx || */
AnnaBridge 126:abea610beb85 1267 /* STM32F302xC || STM32F303xC || STM32F358xx || */
AnnaBridge 126:abea610beb85 1268 /* STM32F302xE || STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 1269 /* STM32F303x8 || STM32F334x8 || STM32F328xx */
AnnaBridge 126:abea610beb85 1270
AnnaBridge 126:abea610beb85 1271 #if defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 1272 defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 1273 /**
AnnaBridge 126:abea610beb85 1274 * @brief Enable the COMP7 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 1275 * @retval None
AnnaBridge 126:abea610beb85 1276 */
AnnaBridge 126:abea610beb85 1277 #define __HAL_COMP_COMP7_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1278
AnnaBridge 126:abea610beb85 1279 /**
AnnaBridge 126:abea610beb85 1280 * @brief Disable the COMP7 EXTI line rising edge trigger.
AnnaBridge 126:abea610beb85 1281 * @retval None
AnnaBridge 126:abea610beb85 1282 */
AnnaBridge 126:abea610beb85 1283 #define __HAL_COMP_COMP7_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1284
AnnaBridge 126:abea610beb85 1285 /**
AnnaBridge 126:abea610beb85 1286 * @brief Enable the COMP7 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 1287 * @retval None
AnnaBridge 126:abea610beb85 1288 */
AnnaBridge 126:abea610beb85 1289 #define __HAL_COMP_COMP7_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1290
AnnaBridge 126:abea610beb85 1291 /**
AnnaBridge 126:abea610beb85 1292 * @brief Disable the COMP7 EXTI line falling edge trigger.
AnnaBridge 126:abea610beb85 1293 * @retval None
AnnaBridge 126:abea610beb85 1294 */
AnnaBridge 126:abea610beb85 1295 #define __HAL_COMP_COMP7_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1296
AnnaBridge 126:abea610beb85 1297 /**
AnnaBridge 126:abea610beb85 1298 * @brief Enable the COMP7 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 1299 * @retval None
AnnaBridge 126:abea610beb85 1300 */
AnnaBridge 126:abea610beb85 1301 #define __HAL_COMP_COMP7_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 1302 __HAL_COMP_COMP7_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 1303 __HAL_COMP_COMP7_EXTI_ENABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 1304 } while(0U)
AnnaBridge 126:abea610beb85 1305
AnnaBridge 126:abea610beb85 1306 /**
AnnaBridge 126:abea610beb85 1307 * @brief Disable the COMP7 EXTI line rising & falling edge trigger.
AnnaBridge 126:abea610beb85 1308 * @retval None
AnnaBridge 126:abea610beb85 1309 */
AnnaBridge 126:abea610beb85 1310 #define __HAL_COMP_COMP7_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 126:abea610beb85 1311 __HAL_COMP_COMP7_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 126:abea610beb85 1312 __HAL_COMP_COMP7_EXTI_DISABLE_FALLING_EDGE(); \
<> 135:176b8275d35d 1313 } while(0U)
AnnaBridge 126:abea610beb85 1314
AnnaBridge 126:abea610beb85 1315 /**
AnnaBridge 126:abea610beb85 1316 * @brief Enable the COMP7 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 1317 * @retval None
AnnaBridge 126:abea610beb85 1318 */
AnnaBridge 126:abea610beb85 1319 #define __HAL_COMP_COMP7_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1320
AnnaBridge 126:abea610beb85 1321 /**
AnnaBridge 126:abea610beb85 1322 * @brief Disable the COMP7 EXTI line in interrupt mode.
AnnaBridge 126:abea610beb85 1323 * @retval None
AnnaBridge 126:abea610beb85 1324 */
AnnaBridge 126:abea610beb85 1325 #define __HAL_COMP_COMP7_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1326
AnnaBridge 126:abea610beb85 1327 /**
AnnaBridge 126:abea610beb85 1328 * @brief Generate a software interrupt on the COMP7 EXTI line.
AnnaBridge 126:abea610beb85 1329 * @retval None
AnnaBridge 126:abea610beb85 1330 */
AnnaBridge 126:abea610beb85 1331 #define __HAL_COMP_COMP7_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1332
AnnaBridge 126:abea610beb85 1333 /**
AnnaBridge 126:abea610beb85 1334 * @brief Enable the COMP7 EXTI line in event mode.
AnnaBridge 126:abea610beb85 1335 * @retval None
AnnaBridge 126:abea610beb85 1336 */
AnnaBridge 126:abea610beb85 1337 #define __HAL_COMP_COMP7_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1338
AnnaBridge 126:abea610beb85 1339 /**
AnnaBridge 126:abea610beb85 1340 * @brief Disable the COMP7 EXTI line in event mode.
AnnaBridge 126:abea610beb85 1341 * @retval None
AnnaBridge 126:abea610beb85 1342 */
AnnaBridge 126:abea610beb85 1343 #define __HAL_COMP_COMP7_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1344
AnnaBridge 126:abea610beb85 1345 /**
AnnaBridge 126:abea610beb85 1346 * @brief Check whether the COMP7 EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 1347 * @retval RESET or SET
AnnaBridge 126:abea610beb85 1348 */
AnnaBridge 126:abea610beb85 1349 #define __HAL_COMP_COMP7_EXTI_GET_FLAG() READ_BIT(EXTI->PR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1350
AnnaBridge 126:abea610beb85 1351 /**
AnnaBridge 126:abea610beb85 1352 * @brief Clear the COMP7 EXTI flag.
AnnaBridge 126:abea610beb85 1353 * @retval None
AnnaBridge 126:abea610beb85 1354 */
AnnaBridge 126:abea610beb85 1355 #define __HAL_COMP_COMP7_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1356
AnnaBridge 126:abea610beb85 1357 #endif /* STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 1358 /* STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 1359
AnnaBridge 126:abea610beb85 1360 /**
AnnaBridge 126:abea610beb85 1361 * @}
AnnaBridge 126:abea610beb85 1362 */
AnnaBridge 126:abea610beb85 1363
AnnaBridge 126:abea610beb85 1364 /* Private types -------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 1365 /* Private constants ---------------------------------------------------------*/
AnnaBridge 126:abea610beb85 1366 /** @defgroup COMPEx_Private_Constants COMP Extended Private Constants
AnnaBridge 126:abea610beb85 1367 * @{
AnnaBridge 126:abea610beb85 1368 */
AnnaBridge 126:abea610beb85 1369 /** @defgroup COMPEx_ExtiLineEvent COMP Extended EXTI lines
AnnaBridge 126:abea610beb85 1370 * @{
AnnaBridge 126:abea610beb85 1371 */
AnnaBridge 126:abea610beb85 1372 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || \
AnnaBridge 126:abea610beb85 1373 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 1374
AnnaBridge 126:abea610beb85 1375 #define COMP_EXTI_LINE_COMP2 EXTI_IMR_MR22 /*!< External interrupt line 22 connected to COMP2 */
AnnaBridge 126:abea610beb85 1376 #define COMP_EXTI_LINE_COMP4 EXTI_IMR_MR30 /*!< External interrupt line 30 connected to COMP4 */
AnnaBridge 126:abea610beb85 1377 #define COMP_EXTI_LINE_COMP6 EXTI_IMR2_MR32 /*!< External interrupt line 32 connected to COMP6 */
AnnaBridge 126:abea610beb85 1378
AnnaBridge 126:abea610beb85 1379 #define COMP_EXTI_LINE_REG2_MASK EXTI_IMR2_MR32 /*!< Mask for External interrupt line control in register xxx2 */
AnnaBridge 126:abea610beb85 1380
AnnaBridge 126:abea610beb85 1381 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx || */
AnnaBridge 126:abea610beb85 1382 /* STM32F303x8 || STM32F334x8 || STM32F328xx */
AnnaBridge 126:abea610beb85 1383
AnnaBridge 126:abea610beb85 1384 #if defined(STM32F302xE) || \
AnnaBridge 126:abea610beb85 1385 defined(STM32F302xC)
AnnaBridge 126:abea610beb85 1386
AnnaBridge 126:abea610beb85 1387 #define COMP_EXTI_LINE_COMP1 EXTI_IMR_MR21 /*!< External interrupt line 21 connected to COMP1 */
AnnaBridge 126:abea610beb85 1388 #define COMP_EXTI_LINE_COMP2 EXTI_IMR_MR22 /*!< External interrupt line 22 connected to COMP2 */
AnnaBridge 126:abea610beb85 1389 #define COMP_EXTI_LINE_COMP4 EXTI_IMR_MR30 /*!< External interrupt line 30 connected to COMP4 */
AnnaBridge 126:abea610beb85 1390 #define COMP_EXTI_LINE_COMP6 EXTI_IMR2_MR32 /*!< External interrupt line 32 connected to COMP6 */
AnnaBridge 126:abea610beb85 1391
AnnaBridge 126:abea610beb85 1392 #define COMP_EXTI_LINE_REG2_MASK EXTI_IMR2_MR32 /*!< Mask for External interrupt line control in register xxx2 */
AnnaBridge 126:abea610beb85 1393
AnnaBridge 126:abea610beb85 1394 #endif /* STM32F302xE || */
AnnaBridge 126:abea610beb85 1395 /* STM32F302xC */
AnnaBridge 126:abea610beb85 1396
AnnaBridge 126:abea610beb85 1397 #if defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 1398 defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 1399
AnnaBridge 126:abea610beb85 1400 #define COMP_EXTI_LINE_COMP1 EXTI_IMR_MR21 /*!< External interrupt line 21 connected to COMP1 */
AnnaBridge 126:abea610beb85 1401 #define COMP_EXTI_LINE_COMP2 EXTI_IMR_MR22 /*!< External interrupt line 22 connected to COMP2 */
AnnaBridge 126:abea610beb85 1402 #define COMP_EXTI_LINE_COMP3 EXTI_IMR_MR29 /*!< External interrupt line 29 connected to COMP3 */
AnnaBridge 126:abea610beb85 1403 #define COMP_EXTI_LINE_COMP4 EXTI_IMR_MR30 /*!< External interrupt line 30 connected to COMP4 */
AnnaBridge 126:abea610beb85 1404 #define COMP_EXTI_LINE_COMP5 EXTI_IMR_MR31 /*!< External interrupt line 31 connected to COMP5 */
AnnaBridge 126:abea610beb85 1405 #define COMP_EXTI_LINE_COMP6 EXTI_IMR2_MR32 /*!< External interrupt line 32 connected to COMP6 */
AnnaBridge 126:abea610beb85 1406 #define COMP_EXTI_LINE_COMP7 EXTI_IMR2_MR33 /*!< External interrupt line 33 connected to COMP7 */
AnnaBridge 126:abea610beb85 1407
AnnaBridge 126:abea610beb85 1408 #define COMP_EXTI_LINE_REG2_MASK (EXTI_IMR2_MR33 | EXTI_IMR2_MR32) /*!< Mask for External interrupt line control in register xxx2 */
AnnaBridge 126:abea610beb85 1409
AnnaBridge 126:abea610beb85 1410 #endif /* STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 1411 /* STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 1412
AnnaBridge 126:abea610beb85 1413 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 1414
AnnaBridge 126:abea610beb85 1415 #define COMP_EXTI_LINE_COMP1 EXTI_IMR_MR21 /*!< External interrupt line 21 connected to COMP1 */
AnnaBridge 126:abea610beb85 1416 #define COMP_EXTI_LINE_COMP2 EXTI_IMR_MR22 /*!< External interrupt line 22 connected to COMP2 */
AnnaBridge 126:abea610beb85 1417
AnnaBridge 126:abea610beb85 1418 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 1419
AnnaBridge 126:abea610beb85 1420 /**
AnnaBridge 126:abea610beb85 1421 * @}
AnnaBridge 126:abea610beb85 1422 */
AnnaBridge 126:abea610beb85 1423
AnnaBridge 126:abea610beb85 1424 /** @defgroup COMPEx_Misc COMP Extended miscellaneous defines
AnnaBridge 126:abea610beb85 1425 * @{
AnnaBridge 126:abea610beb85 1426 */
AnnaBridge 126:abea610beb85 1427
AnnaBridge 126:abea610beb85 1428 /* CSR masks redefinition for internal use */
AnnaBridge 126:abea610beb85 1429 #define COMP_CSR_COMPxINSEL_MASK COMP_CSR_COMPxINSEL /*!< COMP_CSR_COMPxINSEL Mask */
AnnaBridge 126:abea610beb85 1430 #define COMP_CSR_COMPxOUTSEL_MASK COMP_CSR_COMPxOUTSEL /*!< COMP_CSR_COMPxOUTSEL Mask */
AnnaBridge 126:abea610beb85 1431 #define COMP_CSR_COMPxPOL_MASK COMP_CSR_COMPxPOL /*!< COMP_CSR_COMPxPOL Mask */
AnnaBridge 126:abea610beb85 1432 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 1433 /* CSR register reset value */
<> 135:176b8275d35d 1434 #define COMP_CSR_RESET_VALUE (0x00000000U)
<> 135:176b8275d35d 1435 #define COMP_CSR_RESET_PARAMETERS_MASK (0x00003FFFU)
<> 135:176b8275d35d 1436 #define COMP_CSR_UPDATE_PARAMETERS_MASK (0x00003FFEU)
AnnaBridge 126:abea610beb85 1437 /* CSR COMP1/COMP2 shift */
AnnaBridge 126:abea610beb85 1438 #define COMP_CSR_COMP1_SHIFT 0U
AnnaBridge 126:abea610beb85 1439 #define COMP_CSR_COMP2_SHIFT 16U
AnnaBridge 126:abea610beb85 1440 #else
AnnaBridge 126:abea610beb85 1441 /* CSR register reset value */
<> 135:176b8275d35d 1442 #define COMP_CSR_RESET_VALUE (0x00000000U)
AnnaBridge 126:abea610beb85 1443 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 1444
AnnaBridge 126:abea610beb85 1445 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
AnnaBridge 126:abea610beb85 1446 #define COMP_CSR_COMPxNONINSEL_MASK (COMP2_CSR_COMP2INPDAC) /*!< COMP_CSR_COMPxNONINSEL mask */
<> 135:176b8275d35d 1447 #define COMP_CSR_COMPxWNDWEN_MASK (0x00000000U) /*!< Mask empty: feature not available */
<> 135:176b8275d35d 1448 #define COMP_CSR_COMPxMODE_MASK (0x00000000U) /*!< Mask empty: feature not available */
<> 135:176b8275d35d 1449 #define COMP_CSR_COMPxHYST_MASK (0x00000000U) /*!< Mask empty: feature not available */
AnnaBridge 126:abea610beb85 1450 #define COMP_CSR_COMPxBLANKING_MASK COMP_CSR_COMPxBLANKING /*!< COMP_CSR_COMPxBLANKING mask */
AnnaBridge 126:abea610beb85 1451 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
AnnaBridge 126:abea610beb85 1452
AnnaBridge 126:abea610beb85 1453 #if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
<> 135:176b8275d35d 1454 #define COMP_CSR_COMPxNONINSEL_MASK (0x00000000U) /*!< Mask empty: feature not available */
<> 135:176b8275d35d 1455 #define COMP_CSR_COMPxWNDWEN_MASK (0x00000000U) /*!< Mask empty: feature not available */
<> 135:176b8275d35d 1456 #define COMP_CSR_COMPxMODE_MASK (0x00000000U) /*!< Mask empty: feature not available */
<> 135:176b8275d35d 1457 #define COMP_CSR_COMPxHYST_MASK (0x00000000U) /*!< Mask empty: feature not available */
AnnaBridge 126:abea610beb85 1458 #define COMP_CSR_COMPxBLANKING_MASK COMP_CSR_COMPxBLANKING /*!< COMP_CSR_COMPxBLANKING mask */
AnnaBridge 126:abea610beb85 1459 #endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */
AnnaBridge 126:abea610beb85 1460
AnnaBridge 126:abea610beb85 1461 #if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 1462 #define COMP_CSR_COMPxNONINSEL_MASK (COMP_CSR_COMPxNONINSEL | COMP1_CSR_COMP1SW1) /*!< COMP_CSR_COMPxNONINSEL mask */
AnnaBridge 126:abea610beb85 1463 #define COMP_CSR_COMPxWNDWEN_MASK COMP_CSR_COMPxWNDWEN /*!< COMP_CSR_COMPxWNDWEN mask */
AnnaBridge 126:abea610beb85 1464 #define COMP_CSR_COMPxMODE_MASK COMP_CSR_COMPxMODE /*!< COMP_CSR_COMPxMODE Mask */
AnnaBridge 126:abea610beb85 1465 #define COMP_CSR_COMPxHYST_MASK COMP_CSR_COMPxHYST /*!< COMP_CSR_COMPxHYST Mask */
AnnaBridge 126:abea610beb85 1466 #define COMP_CSR_COMPxBLANKING_MASK COMP_CSR_COMPxBLANKING /*!< COMP_CSR_COMPxBLANKING mask */
AnnaBridge 126:abea610beb85 1467 #endif /* STM32F302xC || STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 1468
AnnaBridge 126:abea610beb85 1469 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)
AnnaBridge 126:abea610beb85 1470 #define COMP_CSR_COMPxNONINSEL_MASK (COMP1_CSR_COMP1SW1) /*!< COMP_CSR_COMPxNONINSEL mask */
<> 135:176b8275d35d 1471 #define COMP_CSR_COMPxWNDWEN_MASK (0x00000000U) /*!< Mask empty: feature not available */
<> 135:176b8275d35d 1472 #define COMP_CSR_COMPxMODE_MASK (0x00000000U) /*!< Mask empty: feature not available */
<> 135:176b8275d35d 1473 #define COMP_CSR_COMPxHYST_MASK (0x00000000U) /*!< Mask empty: feature not available */
AnnaBridge 126:abea610beb85 1474 #define COMP_CSR_COMPxBLANKING_MASK COMP_CSR_COMPxBLANKING /*!< COMP_CSR_COMPxBLANKING mask */
AnnaBridge 126:abea610beb85 1475 #endif /* STM32F302xE || STM32F303xE || STM32F398xx */
AnnaBridge 126:abea610beb85 1476
AnnaBridge 126:abea610beb85 1477 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 1478 #define COMP_CSR_COMPxNONINSEL_MASK (COMP_CSR_COMP1SW1) /*!< COMP_CSR_COMPxNONINSEL mask */
AnnaBridge 126:abea610beb85 1479 #define COMP_CSR_COMPxWNDWEN_MASK COMP_CSR_COMPxWNDWEN /*!< COMP_CSR_COMPxWNDWEN mask */
AnnaBridge 126:abea610beb85 1480 #define COMP_CSR_COMPxMODE_MASK COMP_CSR_COMPxMODE /*!< COMP_CSR_COMPxMODE Mask */
AnnaBridge 126:abea610beb85 1481 #define COMP_CSR_COMPxHYST_MASK COMP_CSR_COMPxHYST /*!< COMP_CSR_COMPxHYST Mask */
<> 135:176b8275d35d 1482 #define COMP_CSR_COMPxBLANKING_MASK (0x00000000U) /*!< Mask empty: feature not available */
AnnaBridge 126:abea610beb85 1483 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 1484
AnnaBridge 126:abea610beb85 1485 /**
AnnaBridge 126:abea610beb85 1486 * @}
AnnaBridge 126:abea610beb85 1487 */
AnnaBridge 126:abea610beb85 1488
AnnaBridge 126:abea610beb85 1489 /**
AnnaBridge 126:abea610beb85 1490 * @}
AnnaBridge 126:abea610beb85 1491 */
AnnaBridge 126:abea610beb85 1492
AnnaBridge 126:abea610beb85 1493 /* Private macros ------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 1494 /** @defgroup COMPEx_Private_Macros COMP Extended Private Macros
AnnaBridge 126:abea610beb85 1495 * @{
AnnaBridge 126:abea610beb85 1496 */
AnnaBridge 126:abea610beb85 1497 /** @defgroup COMP_GET_EXTI_LINE COMP Extended Private macro to get the EXTI line associated with a comparator handle
AnnaBridge 126:abea610beb85 1498 * @{
AnnaBridge 126:abea610beb85 1499 */
AnnaBridge 126:abea610beb85 1500 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || \
AnnaBridge 126:abea610beb85 1501 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 1502 /**
AnnaBridge 126:abea610beb85 1503 * @brief Get the specified EXTI line for a comparator instance
AnnaBridge 126:abea610beb85 1504 * @param __INSTANCE__: specifies the COMP instance.
AnnaBridge 126:abea610beb85 1505 * @retval value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1506 */
AnnaBridge 126:abea610beb85 1507 #define COMP_GET_EXTI_LINE(__INSTANCE__) (((__INSTANCE__) == COMP2) ? COMP_EXTI_LINE_COMP2 : \
AnnaBridge 126:abea610beb85 1508 ((__INSTANCE__) == COMP4) ? COMP_EXTI_LINE_COMP4 : \
AnnaBridge 126:abea610beb85 1509 COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1510 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx || */
AnnaBridge 126:abea610beb85 1511 /* STM32F303x8 || STM32F334x8 || STM32F328xx */
AnnaBridge 126:abea610beb85 1512
AnnaBridge 126:abea610beb85 1513 #if defined(STM32F302xE) || \
AnnaBridge 126:abea610beb85 1514 defined(STM32F302xC)
AnnaBridge 126:abea610beb85 1515 /**
AnnaBridge 126:abea610beb85 1516 * @brief Get the specified EXTI line for a comparator instance
AnnaBridge 126:abea610beb85 1517 * @param __INSTANCE__: specifies the COMP instance.
AnnaBridge 126:abea610beb85 1518 * @retval value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1519 */
AnnaBridge 126:abea610beb85 1520 #define COMP_GET_EXTI_LINE(__INSTANCE__) (((__INSTANCE__) == COMP1) ? COMP_EXTI_LINE_COMP1 : \
AnnaBridge 126:abea610beb85 1521 ((__INSTANCE__) == COMP2) ? COMP_EXTI_LINE_COMP2 : \
AnnaBridge 126:abea610beb85 1522 ((__INSTANCE__) == COMP4) ? COMP_EXTI_LINE_COMP4 : \
AnnaBridge 126:abea610beb85 1523 COMP_EXTI_LINE_COMP6)
AnnaBridge 126:abea610beb85 1524 #endif /* STM32F302xE || */
AnnaBridge 126:abea610beb85 1525 /* STM32F302xC */
AnnaBridge 126:abea610beb85 1526
AnnaBridge 126:abea610beb85 1527 #if defined(STM32F303xE) || defined(STM32F398xx) || \
AnnaBridge 126:abea610beb85 1528 defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 1529 /**
AnnaBridge 126:abea610beb85 1530 * @brief Get the specified EXTI line for a comparator instance
AnnaBridge 126:abea610beb85 1531 * @param __INSTANCE__: specifies the COMP instance.
AnnaBridge 126:abea610beb85 1532 * @retval value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1533 */
AnnaBridge 126:abea610beb85 1534 #define COMP_GET_EXTI_LINE(__INSTANCE__) (((__INSTANCE__) == COMP1) ? COMP_EXTI_LINE_COMP1 : \
AnnaBridge 126:abea610beb85 1535 ((__INSTANCE__) == COMP2) ? COMP_EXTI_LINE_COMP2 : \
AnnaBridge 126:abea610beb85 1536 ((__INSTANCE__) == COMP3) ? COMP_EXTI_LINE_COMP3 : \
AnnaBridge 126:abea610beb85 1537 ((__INSTANCE__) == COMP4) ? COMP_EXTI_LINE_COMP4 : \
AnnaBridge 126:abea610beb85 1538 ((__INSTANCE__) == COMP5) ? COMP_EXTI_LINE_COMP5 : \
AnnaBridge 126:abea610beb85 1539 ((__INSTANCE__) == COMP6) ? COMP_EXTI_LINE_COMP6 : \
AnnaBridge 126:abea610beb85 1540 COMP_EXTI_LINE_COMP7)
AnnaBridge 126:abea610beb85 1541 #endif /* STM32F303xE || STM32F398xx || */
AnnaBridge 126:abea610beb85 1542 /* STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 1543
AnnaBridge 126:abea610beb85 1544 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 1545 /**
AnnaBridge 126:abea610beb85 1546 * @brief Get the specified EXTI line for a comparator instance
AnnaBridge 126:abea610beb85 1547 * @param __INSTANCE__: specifies the COMP instance.
AnnaBridge 126:abea610beb85 1548 * @retval value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1549 */
AnnaBridge 126:abea610beb85 1550 #define COMP_GET_EXTI_LINE(__INSTANCE__) (((__INSTANCE__) == COMP1) ? COMP_EXTI_LINE_COMP1 : \
AnnaBridge 126:abea610beb85 1551 COMP_EXTI_LINE_COMP2)
AnnaBridge 126:abea610beb85 1552 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 1553
AnnaBridge 126:abea610beb85 1554 /**
AnnaBridge 126:abea610beb85 1555 * @}
AnnaBridge 126:abea610beb85 1556 */
AnnaBridge 126:abea610beb85 1557
AnnaBridge 126:abea610beb85 1558 /** @defgroup COMPEx_Private_Macros_Misc COMP Extended miscellaneous private macros
AnnaBridge 126:abea610beb85 1559 * @{
AnnaBridge 126:abea610beb85 1560 */
AnnaBridge 126:abea610beb85 1561
AnnaBridge 126:abea610beb85 1562 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 1563 /**
AnnaBridge 126:abea610beb85 1564 * @brief Init a comparator instance
AnnaBridge 126:abea610beb85 1565 * @param __HANDLE__ COMP handle
AnnaBridge 126:abea610beb85 1566 * @note The common output selection is checked versus the COMP instance to set the right output configuration
AnnaBridge 126:abea610beb85 1567 * @retval None.
AnnaBridge 126:abea610beb85 1568 */
AnnaBridge 126:abea610beb85 1569
AnnaBridge 126:abea610beb85 1570 #define COMP_INIT(__HANDLE__) \
AnnaBridge 126:abea610beb85 1571 do { \
AnnaBridge 126:abea610beb85 1572 uint32_t regshift = COMP_CSR_COMP1_SHIFT; \
AnnaBridge 126:abea610beb85 1573 uint32_t compoutput = (__HANDLE__)->Init.Output & COMP_CSR_COMPxOUTSEL_MASK; \
AnnaBridge 126:abea610beb85 1574 \
AnnaBridge 126:abea610beb85 1575 if((__HANDLE__)->Instance == COMP2) \
AnnaBridge 126:abea610beb85 1576 { \
AnnaBridge 126:abea610beb85 1577 regshift = COMP_CSR_COMP2_SHIFT; \
AnnaBridge 126:abea610beb85 1578 } \
AnnaBridge 126:abea610beb85 1579 \
AnnaBridge 126:abea610beb85 1580 MODIFY_REG(COMP->CSR, \
AnnaBridge 126:abea610beb85 1581 (COMP_CSR_COMPxINSEL | COMP_CSR_COMPxNONINSEL_MASK | \
AnnaBridge 126:abea610beb85 1582 COMP_CSR_COMPxOUTSEL | COMP_CSR_COMPxPOL | \
AnnaBridge 126:abea610beb85 1583 COMP_CSR_COMPxHYST | COMP_CSR_COMPxMODE) << regshift, \
AnnaBridge 126:abea610beb85 1584 ((__HANDLE__)->Init.InvertingInput | \
AnnaBridge 126:abea610beb85 1585 (__HANDLE__)->Init.NonInvertingInput | \
AnnaBridge 126:abea610beb85 1586 compoutput | \
AnnaBridge 126:abea610beb85 1587 (__HANDLE__)->Init.OutputPol | \
AnnaBridge 126:abea610beb85 1588 (__HANDLE__)->Init.Hysteresis | \
AnnaBridge 126:abea610beb85 1589 (__HANDLE__)->Init.Mode) << regshift); \
AnnaBridge 126:abea610beb85 1590 \
AnnaBridge 126:abea610beb85 1591 if((__HANDLE__)->Init.WindowMode != COMP_WINDOWMODE_DISABLE) \
AnnaBridge 126:abea610beb85 1592 { \
AnnaBridge 126:abea610beb85 1593 COMP->CSR |= COMP_CSR_WNDWEN; \
AnnaBridge 126:abea610beb85 1594 } \
<> 135:176b8275d35d 1595 } while(0U)
AnnaBridge 126:abea610beb85 1596
AnnaBridge 126:abea610beb85 1597 /**
AnnaBridge 126:abea610beb85 1598 * @brief DeInit a comparator instance
AnnaBridge 126:abea610beb85 1599 * @param __HANDLE__ COMP handle
AnnaBridge 126:abea610beb85 1600 * @retval None.
AnnaBridge 126:abea610beb85 1601 */
AnnaBridge 126:abea610beb85 1602 #define COMP_DEINIT(__HANDLE__) \
AnnaBridge 126:abea610beb85 1603 do { \
AnnaBridge 126:abea610beb85 1604 uint32_t regshift = COMP_CSR_COMP1_SHIFT; \
AnnaBridge 126:abea610beb85 1605 \
AnnaBridge 126:abea610beb85 1606 if((__HANDLE__)->Instance == COMP2) \
AnnaBridge 126:abea610beb85 1607 { \
AnnaBridge 126:abea610beb85 1608 regshift = COMP_CSR_COMP2_SHIFT; \
AnnaBridge 126:abea610beb85 1609 } \
AnnaBridge 126:abea610beb85 1610 MODIFY_REG(COMP->CSR, \
AnnaBridge 126:abea610beb85 1611 COMP_CSR_RESET_PARAMETERS_MASK << regshift, \
AnnaBridge 126:abea610beb85 1612 COMP_CSR_RESET_VALUE << regshift); \
<> 135:176b8275d35d 1613 } while(0U)
AnnaBridge 126:abea610beb85 1614
AnnaBridge 126:abea610beb85 1615
AnnaBridge 126:abea610beb85 1616 /**
AnnaBridge 126:abea610beb85 1617 * @brief Enable the Exti Line rising edge trigger.
AnnaBridge 126:abea610beb85 1618 * @param __EXTILINE__: specifies the COMP Exti sources to be enabled.
AnnaBridge 126:abea610beb85 1619 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1620 * @retval None.
AnnaBridge 126:abea610beb85 1621 */
AnnaBridge 126:abea610beb85 1622 #define COMP_EXTI_RISING_ENABLE(__EXTILINE__) SET_BIT(EXTI->RTSR, (__EXTILINE__))
AnnaBridge 126:abea610beb85 1623
AnnaBridge 126:abea610beb85 1624 /**
AnnaBridge 126:abea610beb85 1625 * @brief Disable the Exti Line rising edge trigger.
AnnaBridge 126:abea610beb85 1626 * @param __EXTILINE__: specifies the COMP Exti sources to be disabled.
AnnaBridge 126:abea610beb85 1627 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1628 * @retval None.
AnnaBridge 126:abea610beb85 1629 */
AnnaBridge 126:abea610beb85 1630 #define COMP_EXTI_RISING_DISABLE(__EXTILINE__) CLEAR_BIT(EXTI->RTSR, (__EXTILINE__))
AnnaBridge 126:abea610beb85 1631
AnnaBridge 126:abea610beb85 1632 /**
AnnaBridge 126:abea610beb85 1633 * @brief Enable the Exti Line falling edge trigger.
AnnaBridge 126:abea610beb85 1634 * @param __EXTILINE__: specifies the COMP Exti sources to be enabled.
AnnaBridge 126:abea610beb85 1635 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1636 * @retval None.
AnnaBridge 126:abea610beb85 1637 */
AnnaBridge 126:abea610beb85 1638 #define COMP_EXTI_FALLING_ENABLE(__EXTILINE__) SET_BIT(EXTI->FTSR, (__EXTILINE__))
AnnaBridge 126:abea610beb85 1639
AnnaBridge 126:abea610beb85 1640 /**
AnnaBridge 126:abea610beb85 1641 * @brief Disable the Exti Line falling edge trigger.
AnnaBridge 126:abea610beb85 1642 * @param __EXTILINE__: specifies the COMP Exti sources to be disabled.
AnnaBridge 126:abea610beb85 1643 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1644 * @retval None.
AnnaBridge 126:abea610beb85 1645 */
AnnaBridge 126:abea610beb85 1646 #define COMP_EXTI_FALLING_DISABLE(__EXTILINE__) CLEAR_BIT(EXTI->FTSR, (__EXTILINE__))
AnnaBridge 126:abea610beb85 1647
AnnaBridge 126:abea610beb85 1648 /**
AnnaBridge 126:abea610beb85 1649 * @brief Enable the COMP Exti Line interrupt generation.
AnnaBridge 126:abea610beb85 1650 * @param __EXTILINE__: specifies the COMP Exti sources to be enabled.
AnnaBridge 126:abea610beb85 1651 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1652 * @retval None.
AnnaBridge 126:abea610beb85 1653 */
AnnaBridge 126:abea610beb85 1654 #define COMP_EXTI_ENABLE_IT(__EXTILINE__) SET_BIT(EXTI->IMR, (__EXTILINE__))
AnnaBridge 126:abea610beb85 1655
AnnaBridge 126:abea610beb85 1656 /**
AnnaBridge 126:abea610beb85 1657 * @brief Disable the COMP Exti Line interrupt generation.
AnnaBridge 126:abea610beb85 1658 * @param __EXTILINE__: specifies the COMP Exti sources to be disabled.
AnnaBridge 126:abea610beb85 1659 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1660 * @retval None.
AnnaBridge 126:abea610beb85 1661 */
AnnaBridge 126:abea610beb85 1662 #define COMP_EXTI_DISABLE_IT(__EXTILINE__) CLEAR_BIT(EXTI->IMR, (__EXTILINE__))
AnnaBridge 126:abea610beb85 1663
AnnaBridge 126:abea610beb85 1664 /**
AnnaBridge 126:abea610beb85 1665 * @brief Enable the COMP Exti Line event generation.
AnnaBridge 126:abea610beb85 1666 * @param __EXTILINE__: specifies the COMP Exti sources to be enabled.
AnnaBridge 126:abea610beb85 1667 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1668 * @retval None.
AnnaBridge 126:abea610beb85 1669 */
AnnaBridge 126:abea610beb85 1670 #define COMP_EXTI_ENABLE_EVENT(__EXTILINE__) SET_BIT(EXTI->EMR, (__EXTILINE__))
AnnaBridge 126:abea610beb85 1671
AnnaBridge 126:abea610beb85 1672 /**
AnnaBridge 126:abea610beb85 1673 * @brief Disable the COMP Exti Line event generation.
AnnaBridge 126:abea610beb85 1674 * @param __EXTILINE__: specifies the COMP Exti sources to be disabled.
AnnaBridge 126:abea610beb85 1675 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1676 * @retval None.
AnnaBridge 126:abea610beb85 1677 */
AnnaBridge 126:abea610beb85 1678 #define COMP_EXTI_DISABLE_EVENT(__EXTILINE__) CLEAR_BIT(EXTI->EMR, (__EXTILINE__))
AnnaBridge 126:abea610beb85 1679
AnnaBridge 126:abea610beb85 1680 /**
AnnaBridge 126:abea610beb85 1681 * @brief Check whether the specified EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 1682 * @param __FLAG__: specifies the COMP Exti sources to be checked.
AnnaBridge 126:abea610beb85 1683 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1684 * @retval The state of __FLAG__ (SET or RESET).
AnnaBridge 126:abea610beb85 1685 */
AnnaBridge 126:abea610beb85 1686 #define COMP_EXTI_GET_FLAG(__FLAG__) READ_BIT(EXTI->PR, (__FLAG__))
AnnaBridge 126:abea610beb85 1687
AnnaBridge 126:abea610beb85 1688 /**
AnnaBridge 126:abea610beb85 1689 * @brief Clear the COMP Exti flags.
AnnaBridge 126:abea610beb85 1690 * @param __FLAG__: specifies the COMP Exti sources to be cleared.
AnnaBridge 126:abea610beb85 1691 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1692 * @retval None.
AnnaBridge 126:abea610beb85 1693 */
AnnaBridge 126:abea610beb85 1694 #define COMP_EXTI_CLEAR_FLAG(__FLAG__) WRITE_REG(EXTI->PR, (__FLAG__))
AnnaBridge 126:abea610beb85 1695
AnnaBridge 126:abea610beb85 1696 #else /* STM32F30x, STM32F32xx, STM32F35x, STM32F39x, STM32F33x */
AnnaBridge 126:abea610beb85 1697
AnnaBridge 126:abea610beb85 1698
AnnaBridge 126:abea610beb85 1699 /**
AnnaBridge 126:abea610beb85 1700 * @brief Init a comparator instance
AnnaBridge 126:abea610beb85 1701 * @param __HANDLE__ COMP handle
AnnaBridge 126:abea610beb85 1702 * @retval None.
AnnaBridge 126:abea610beb85 1703 */
AnnaBridge 126:abea610beb85 1704 #define COMP_INIT(__HANDLE__) \
AnnaBridge 126:abea610beb85 1705 do { \
<> 135:176b8275d35d 1706 __IO uint32_t csrreg = 0U; \
AnnaBridge 126:abea610beb85 1707 \
AnnaBridge 126:abea610beb85 1708 csrreg = READ_REG((__HANDLE__)->Instance->CSR); \
AnnaBridge 126:abea610beb85 1709 MODIFY_REG(csrreg, COMP_CSR_COMPxINSEL_MASK, (__HANDLE__)->Init.InvertingInput); \
AnnaBridge 126:abea610beb85 1710 MODIFY_REG(csrreg, COMP_CSR_COMPxNONINSEL_MASK, (__HANDLE__)->Init.NonInvertingInput); \
AnnaBridge 126:abea610beb85 1711 MODIFY_REG(csrreg, COMP_CSR_COMPxBLANKING_MASK, (__HANDLE__)->Init.BlankingSrce); \
AnnaBridge 126:abea610beb85 1712 MODIFY_REG(csrreg, COMP_CSR_COMPxOUTSEL_MASK, (__HANDLE__)->Init.Output & COMP_CSR_COMPxOUTSEL_MASK); \
AnnaBridge 126:abea610beb85 1713 MODIFY_REG(csrreg, COMP_CSR_COMPxPOL_MASK, (__HANDLE__)->Init.OutputPol); \
AnnaBridge 126:abea610beb85 1714 MODIFY_REG(csrreg, COMP_CSR_COMPxHYST_MASK, (__HANDLE__)->Init.Hysteresis); \
AnnaBridge 126:abea610beb85 1715 MODIFY_REG(csrreg, COMP_CSR_COMPxMODE_MASK, (__HANDLE__)->Init.Mode); \
AnnaBridge 126:abea610beb85 1716 MODIFY_REG(csrreg, COMP_CSR_COMPxWNDWEN_MASK, (__HANDLE__)->Init.WindowMode); \
AnnaBridge 126:abea610beb85 1717 WRITE_REG((__HANDLE__)->Instance->CSR, csrreg); \
<> 135:176b8275d35d 1718 } while(0U)
AnnaBridge 126:abea610beb85 1719
AnnaBridge 126:abea610beb85 1720 /**
AnnaBridge 126:abea610beb85 1721 * @brief DeInit a comparator instance
AnnaBridge 126:abea610beb85 1722 * @param __HANDLE__ COMP handle
AnnaBridge 126:abea610beb85 1723 * @retval None.
AnnaBridge 126:abea610beb85 1724 */
AnnaBridge 126:abea610beb85 1725 #define COMP_DEINIT(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->CSR, COMP_CSR_RESET_VALUE)
AnnaBridge 126:abea610beb85 1726
AnnaBridge 126:abea610beb85 1727 /**
AnnaBridge 126:abea610beb85 1728 * @brief Enable the Exti Line rising edge trigger.
AnnaBridge 126:abea610beb85 1729 * @param __EXTILINE__: specifies the COMP Exti sources to be enabled.
AnnaBridge 126:abea610beb85 1730 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1731 * @retval None.
AnnaBridge 126:abea610beb85 1732 */
AnnaBridge 126:abea610beb85 1733 #define COMP_EXTI_RISING_ENABLE(__EXTILINE__) ((((__EXTILINE__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? SET_BIT(EXTI->RTSR2, (__EXTILINE__)) : SET_BIT(EXTI->RTSR, (__EXTILINE__)))
AnnaBridge 126:abea610beb85 1734
AnnaBridge 126:abea610beb85 1735 /**
AnnaBridge 126:abea610beb85 1736 * @brief Disable the Exti Line rising edge trigger.
AnnaBridge 126:abea610beb85 1737 * @param __EXTILINE__: specifies the COMP Exti sources to be disabled.
AnnaBridge 126:abea610beb85 1738 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1739 * @retval None.
AnnaBridge 126:abea610beb85 1740 */
AnnaBridge 126:abea610beb85 1741 #define COMP_EXTI_RISING_DISABLE(__EXTILINE__) ((((__EXTILINE__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? CLEAR_BIT(EXTI->RTSR2, (__EXTILINE__)) : CLEAR_BIT(EXTI->RTSR, (__EXTILINE__)))
AnnaBridge 126:abea610beb85 1742
AnnaBridge 126:abea610beb85 1743 /**
AnnaBridge 126:abea610beb85 1744 * @brief Enable the Exti Line falling edge trigger.
AnnaBridge 126:abea610beb85 1745 * @param __EXTILINE__: specifies the COMP Exti sources to be enabled.
AnnaBridge 126:abea610beb85 1746 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1747 * @retval None.
AnnaBridge 126:abea610beb85 1748 */
AnnaBridge 126:abea610beb85 1749 #define COMP_EXTI_FALLING_ENABLE(__EXTILINE__) ((((__EXTILINE__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? SET_BIT(EXTI->FTSR2, (__EXTILINE__)) : SET_BIT(EXTI->FTSR, (__EXTILINE__)))
AnnaBridge 126:abea610beb85 1750
AnnaBridge 126:abea610beb85 1751 /**
AnnaBridge 126:abea610beb85 1752 * @brief Disable the Exti Line falling edge trigger.
AnnaBridge 126:abea610beb85 1753 * @param __EXTILINE__: specifies the COMP Exti sources to be disabled.
AnnaBridge 126:abea610beb85 1754 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1755 * @retval None.
AnnaBridge 126:abea610beb85 1756 */
AnnaBridge 126:abea610beb85 1757 #define COMP_EXTI_FALLING_DISABLE(__EXTILINE__) ((((__EXTILINE__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? CLEAR_BIT(EXTI->FTSR2, (__EXTILINE__)) : CLEAR_BIT(EXTI->FTSR, (__EXTILINE__)))
AnnaBridge 126:abea610beb85 1758
AnnaBridge 126:abea610beb85 1759 /**
AnnaBridge 126:abea610beb85 1760 * @brief Enable the COMP Exti Line interrupt generation.
AnnaBridge 126:abea610beb85 1761 * @param __EXTILINE__: specifies the COMP Exti sources to be enabled.
AnnaBridge 126:abea610beb85 1762 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1763 * @retval None.
AnnaBridge 126:abea610beb85 1764 */
AnnaBridge 126:abea610beb85 1765 #define COMP_EXTI_ENABLE_IT(__EXTILINE__) ((((__EXTILINE__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? SET_BIT(EXTI->IMR2, (__EXTILINE__)) : SET_BIT(EXTI->IMR, (__EXTILINE__)))
AnnaBridge 126:abea610beb85 1766
AnnaBridge 126:abea610beb85 1767 /**
AnnaBridge 126:abea610beb85 1768 * @brief Disable the COMP Exti Line interrupt generation.
AnnaBridge 126:abea610beb85 1769 * @param __EXTILINE__: specifies the COMP Exti sources to be disabled.
AnnaBridge 126:abea610beb85 1770 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1771 * @retval None.
AnnaBridge 126:abea610beb85 1772 */
AnnaBridge 126:abea610beb85 1773 #define COMP_EXTI_DISABLE_IT(__EXTILINE__) ((((__EXTILINE__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? CLEAR_BIT(EXTI->IMR2, (__EXTILINE__)) : CLEAR_BIT(EXTI->IMR, (__EXTILINE__)))
AnnaBridge 126:abea610beb85 1774
AnnaBridge 126:abea610beb85 1775 /**
AnnaBridge 126:abea610beb85 1776 * @brief Enable the COMP Exti Line event generation.
AnnaBridge 126:abea610beb85 1777 * @param __EXTILINE__: specifies the COMP Exti sources to be enabled.
AnnaBridge 126:abea610beb85 1778 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1779 * @retval None.
AnnaBridge 126:abea610beb85 1780 */
AnnaBridge 126:abea610beb85 1781 #define COMP_EXTI_ENABLE_EVENT(__EXTILINE__) ((((__EXTILINE__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? SET_BIT(EXTI->EMR2, (__EXTILINE__)) : SET_BIT(EXTI->EMR, (__EXTILINE__)))
AnnaBridge 126:abea610beb85 1782
AnnaBridge 126:abea610beb85 1783 /**
AnnaBridge 126:abea610beb85 1784 * @brief Disable the COMP Exti Line event generation.
AnnaBridge 126:abea610beb85 1785 * @param __EXTILINE__: specifies the COMP Exti sources to be disabled.
AnnaBridge 126:abea610beb85 1786 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1787 * @retval None.
AnnaBridge 126:abea610beb85 1788 */
AnnaBridge 126:abea610beb85 1789 #define COMP_EXTI_DISABLE_EVENT(__EXTILINE__) ((((__EXTILINE__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? CLEAR_BIT(EXTI->EMR2, (__EXTILINE__)) : CLEAR_BIT(EXTI->EMR, (__EXTILINE__)))
AnnaBridge 126:abea610beb85 1790
AnnaBridge 126:abea610beb85 1791 /**
AnnaBridge 126:abea610beb85 1792 * @brief Check whether the specified EXTI line flag is set or not.
AnnaBridge 126:abea610beb85 1793 * @param __FLAG__: specifies the COMP Exti sources to be checked.
AnnaBridge 126:abea610beb85 1794 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1795 * @retval The state of __FLAG__ (SET or RESET).
AnnaBridge 126:abea610beb85 1796 */
AnnaBridge 126:abea610beb85 1797 #define COMP_EXTI_GET_FLAG(__FLAG__) ((((__FLAG__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? READ_BIT(EXTI->PR2, (__FLAG__)) : READ_BIT(EXTI->PR, (__FLAG__)))
AnnaBridge 126:abea610beb85 1798
AnnaBridge 126:abea610beb85 1799 /**
AnnaBridge 126:abea610beb85 1800 * @brief Clear the COMP Exti flags.
AnnaBridge 126:abea610beb85 1801 * @param __FLAG__: specifies the COMP Exti sources to be cleared.
AnnaBridge 126:abea610beb85 1802 * This parameter can be a value of @ref COMPEx_ExtiLineEvent
AnnaBridge 126:abea610beb85 1803 * @retval None.
AnnaBridge 126:abea610beb85 1804 */
AnnaBridge 126:abea610beb85 1805 #define COMP_EXTI_CLEAR_FLAG(__FLAG__) ((((__FLAG__) & COMP_EXTI_LINE_REG2_MASK) != RESET) ? WRITE_REG(EXTI->PR2, (__FLAG__)) : WRITE_REG(EXTI->PR, (__FLAG__)))
AnnaBridge 126:abea610beb85 1806
AnnaBridge 126:abea610beb85 1807 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 1808
AnnaBridge 126:abea610beb85 1809
AnnaBridge 126:abea610beb85 1810 /**
AnnaBridge 126:abea610beb85 1811 * @brief Manage inverting input comparator inverting input connected to a GPIO
AnnaBridge 126:abea610beb85 1812 * for STM32F302x, STM32F32xx, STM32F33x.
AnnaBridge 126:abea610beb85 1813 * - On devices STM32F302x, STM32F32xx, STM32F33x, there is
AnnaBridge 126:abea610beb85 1814 * only 1 comparator inverting input connected to a GPIO.
AnnaBridge 126:abea610beb85 1815 * Legacy definition of literal COMP_INVERTINGINPUT_IO1
AnnaBridge 126:abea610beb85 1816 * was initially the only selection, but depending on
AnnaBridge 126:abea610beb85 1817 * comparator instance it corresponds to COMP_INVERTINGINPUT_IO2
AnnaBridge 126:abea610beb85 1818 * (for instances COMP4, COMP6).
AnnaBridge 126:abea610beb85 1819 * Since, COMP_INVERTINGINPUT_IO2 has been created and this macro
AnnaBridge 126:abea610beb85 1820 * selects the correct literal COMP_INVERTINGINPUT_IOx in function
AnnaBridge 126:abea610beb85 1821 * of comparator instance.
AnnaBridge 126:abea610beb85 1822 * - On other STM32F3 devices, this macro performs no action.
AnnaBridge 126:abea610beb85 1823 * @param __COMP_INSTANCE__ COMP instance
AnnaBridge 126:abea610beb85 1824 * @param __INVERTINGINPUT__ COMP inverting input
AnnaBridge 126:abea610beb85 1825 * @retval None.
AnnaBridge 126:abea610beb85 1826 */
AnnaBridge 126:abea610beb85 1827 #if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 1828 #define COMP_INVERTINGINPUT_SELECTION(__COMP_INSTANCE__, __INVERTINGINPUT__) \
AnnaBridge 126:abea610beb85 1829 (((__INVERTINGINPUT__) != COMP_INVERTINGINPUT_IO1) \
AnnaBridge 126:abea610beb85 1830 ? ( \
AnnaBridge 126:abea610beb85 1831 (__INVERTINGINPUT__) \
AnnaBridge 126:abea610beb85 1832 ) \
AnnaBridge 126:abea610beb85 1833 : \
AnnaBridge 126:abea610beb85 1834 (((__COMP_INSTANCE__) == COMP2) \
AnnaBridge 126:abea610beb85 1835 ? ( \
AnnaBridge 126:abea610beb85 1836 (COMP_INVERTINGINPUT_IO1) \
AnnaBridge 126:abea610beb85 1837 ) \
AnnaBridge 126:abea610beb85 1838 : \
AnnaBridge 126:abea610beb85 1839 ( \
AnnaBridge 126:abea610beb85 1840 (COMP_INVERTINGINPUT_IO2) \
AnnaBridge 126:abea610beb85 1841 ) \
AnnaBridge 126:abea610beb85 1842 ) \
AnnaBridge 126:abea610beb85 1843 )
AnnaBridge 126:abea610beb85 1844 #else
AnnaBridge 126:abea610beb85 1845 #define COMP_INVERTINGINPUT_SELECTION(__COMP_INSTANCE__, __INVERTINGINPUT__) \
AnnaBridge 126:abea610beb85 1846 (__INVERTINGINPUT__)
AnnaBridge 126:abea610beb85 1847 #endif
AnnaBridge 126:abea610beb85 1848
AnnaBridge 126:abea610beb85 1849 /**
AnnaBridge 126:abea610beb85 1850 * @}
AnnaBridge 126:abea610beb85 1851 */
AnnaBridge 126:abea610beb85 1852
AnnaBridge 126:abea610beb85 1853 /** @defgroup COMPEx_IS_COMP_Definitions COMP Extended Private macros to check input parameters
AnnaBridge 126:abea610beb85 1854 * @{
AnnaBridge 126:abea610beb85 1855 */
AnnaBridge 126:abea610beb85 1856
AnnaBridge 126:abea610beb85 1857 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
AnnaBridge 126:abea610beb85 1858
AnnaBridge 126:abea610beb85 1859 #define IS_COMP_INVERTINGINPUT(INPUT) (((INPUT) == COMP_INVERTINGINPUT_1_4VREFINT) || \
AnnaBridge 126:abea610beb85 1860 ((INPUT) == COMP_INVERTINGINPUT_1_2VREFINT) || \
AnnaBridge 126:abea610beb85 1861 ((INPUT) == COMP_INVERTINGINPUT_3_4VREFINT) || \
AnnaBridge 126:abea610beb85 1862 ((INPUT) == COMP_INVERTINGINPUT_VREFINT) || \
AnnaBridge 126:abea610beb85 1863 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH1) || \
AnnaBridge 126:abea610beb85 1864 ((INPUT) == COMP_INVERTINGINPUT_IO1))
AnnaBridge 126:abea610beb85 1865
AnnaBridge 126:abea610beb85 1866 #define IS_COMP_NONINVERTINGINPUT(INPUT) (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 1867 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))
AnnaBridge 126:abea610beb85 1868
AnnaBridge 126:abea610beb85 1869 /* STM32F301x6/x8, STM32F302x6/x8, STM32F318xx devices comparator instances non inverting source values */
AnnaBridge 126:abea610beb85 1870 #define IS_COMP_NONINVERTINGINPUT_INSTANCE(INSTANCE, INPUT) \
AnnaBridge 126:abea610beb85 1871 ((((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 1872 (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 1873 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))) \
AnnaBridge 126:abea610beb85 1874 || \
AnnaBridge 126:abea610beb85 1875 (((INPUT) == COMP_NONINVERTINGINPUT_IO1)))
AnnaBridge 126:abea610beb85 1876
AnnaBridge 126:abea610beb85 1877 #define IS_COMP_WINDOWMODE(WINDOWMODE) ((WINDOWMODE) == (WINDOWMODE)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 1878
AnnaBridge 126:abea610beb85 1879 #define IS_COMP_MODE(MODE) ((MODE) == (MODE)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 1880
AnnaBridge 126:abea610beb85 1881 #define IS_COMP_HYSTERESIS(HYSTERESIS) ((HYSTERESIS) == (HYSTERESIS)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 1882
AnnaBridge 126:abea610beb85 1883 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 1884 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 1885 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 1886 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 1887 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 1888 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 1889 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 1890 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 1891 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 1892 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 1893 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 1894 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR) || \
AnnaBridge 126:abea610beb85 1895 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 1896 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR))
AnnaBridge 126:abea610beb85 1897
AnnaBridge 126:abea610beb85 1898 #define IS_COMP_OUTPUT_INSTANCE(INSTANCE, OUTPUT) \
AnnaBridge 126:abea610beb85 1899 ((((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 1900 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 1901 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 1902 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 1903 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 1904 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 1905 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 1906 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 1907 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR))) \
AnnaBridge 126:abea610beb85 1908 || \
AnnaBridge 126:abea610beb85 1909 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 1910 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 1911 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 1912 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 1913 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 1914 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 1915 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR))) \
AnnaBridge 126:abea610beb85 1916 || \
AnnaBridge 126:abea610beb85 1917 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 1918 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 1919 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 1920 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 1921 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 1922 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 1923 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 1924 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 1925 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR))))
AnnaBridge 126:abea610beb85 1926
AnnaBridge 126:abea610beb85 1927 #define IS_COMP_BLANKINGSRCE(SOURCE) (((SOURCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 1928 ((SOURCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 1929 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 1930 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC3) || \
AnnaBridge 126:abea610beb85 1931 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 1932 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 1933 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC1) || \
AnnaBridge 126:abea610beb85 1934 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC2))
AnnaBridge 126:abea610beb85 1935
<> 135:176b8275d35d 1936 /* STM32F301x6/x8, STM32F302x6/x8, STM32F303x6/x8, STM32F334x4/6U/8U, STM32F318xx/STM32F328xx devices comparator instances blanking source values */
AnnaBridge 126:abea610beb85 1937 #define IS_COMP_BLANKINGSRCE_INSTANCE(INSTANCE, BLANKINGSRCE) \
AnnaBridge 126:abea610beb85 1938 ((((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 1939 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 1940 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 1941 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 1942 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC3))) \
AnnaBridge 126:abea610beb85 1943 || \
AnnaBridge 126:abea610beb85 1944 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 1945 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 1946 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 1947 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC1))) \
AnnaBridge 126:abea610beb85 1948 || \
AnnaBridge 126:abea610beb85 1949 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 1950 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 1951 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 1952 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC2))))
AnnaBridge 126:abea610beb85 1953
AnnaBridge 126:abea610beb85 1954 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
AnnaBridge 126:abea610beb85 1955
AnnaBridge 126:abea610beb85 1956 #if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
AnnaBridge 126:abea610beb85 1957
AnnaBridge 126:abea610beb85 1958 #define IS_COMP_INVERTINGINPUT(INPUT) (((INPUT) == COMP_INVERTINGINPUT_1_4VREFINT) || \
AnnaBridge 126:abea610beb85 1959 ((INPUT) == COMP_INVERTINGINPUT_1_2VREFINT) || \
AnnaBridge 126:abea610beb85 1960 ((INPUT) == COMP_INVERTINGINPUT_3_4VREFINT) || \
AnnaBridge 126:abea610beb85 1961 ((INPUT) == COMP_INVERTINGINPUT_VREFINT) || \
AnnaBridge 126:abea610beb85 1962 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH1) || \
AnnaBridge 126:abea610beb85 1963 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH2) || \
AnnaBridge 126:abea610beb85 1964 ((INPUT) == COMP_INVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 1965 ((INPUT) == COMP_INVERTINGINPUT_IO2) || \
AnnaBridge 126:abea610beb85 1966 ((INPUT) == COMP_INVERTINGINPUT_DAC2_CH1))
AnnaBridge 126:abea610beb85 1967
AnnaBridge 126:abea610beb85 1968 /*!< Non inverting input not available */
AnnaBridge 126:abea610beb85 1969 #define IS_COMP_NONINVERTINGINPUT(INPUT) ((INPUT) == (INPUT)) /*!< Multiple selection not available: check always true */
AnnaBridge 126:abea610beb85 1970
AnnaBridge 126:abea610beb85 1971 #define IS_COMP_NONINVERTINGINPUT_INSTANCE(INSTANCE, INPUT) ((INPUT) == (INPUT)) /*!< Multiple selection not available: check always true */
AnnaBridge 126:abea610beb85 1972
AnnaBridge 126:abea610beb85 1973 #define IS_COMP_WINDOWMODE(WINDOWMODE) ((WINDOWMODE) == (WINDOWMODE)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 1974
AnnaBridge 126:abea610beb85 1975 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 1976 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 1977 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 1978 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 1979 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 1980 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 1981 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 1982 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 1983 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 1984 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 1985 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 1986 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 1987 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 1988 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR) || \
AnnaBridge 126:abea610beb85 1989 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 1990 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR))
AnnaBridge 126:abea610beb85 1991
AnnaBridge 126:abea610beb85 1992 #define IS_COMP_OUTPUT_INSTANCE(INSTANCE, OUTPUT) \
AnnaBridge 126:abea610beb85 1993 ((((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 1994 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 1995 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 1996 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 1997 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 1998 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 1999 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2000 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2001 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2002 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))) \
AnnaBridge 126:abea610beb85 2003 || \
AnnaBridge 126:abea610beb85 2004 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2005 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2006 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2007 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2008 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2009 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2010 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 2011 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR))) \
AnnaBridge 126:abea610beb85 2012 || \
AnnaBridge 126:abea610beb85 2013 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2014 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2015 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2016 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2017 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2018 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2019 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2020 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR))))
AnnaBridge 126:abea610beb85 2021
AnnaBridge 126:abea610beb85 2022 #define IS_COMP_MODE(MODE) ((MODE) == (MODE)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 2023
AnnaBridge 126:abea610beb85 2024 #define IS_COMP_HYSTERESIS(HYSTERESIS) ((HYSTERESIS) == (HYSTERESIS)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 2025
AnnaBridge 126:abea610beb85 2026 #define IS_COMP_BLANKINGSRCE(SOURCE) (((SOURCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2027 ((SOURCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2028 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2029 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC3) || \
AnnaBridge 126:abea610beb85 2030 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2031 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2032 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC1) || \
AnnaBridge 126:abea610beb85 2033 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC2))
AnnaBridge 126:abea610beb85 2034
<> 135:176b8275d35d 2035 /* STM32F301x6/x8, STM32F302x6/x8, STM32F303x6/x8, STM32F334x4/6U/8U, STM32F318xx/STM32F328xx devices comparator instances blanking source values */
AnnaBridge 126:abea610beb85 2036 #define IS_COMP_BLANKINGSRCE_INSTANCE(INSTANCE, BLANKINGSRCE) \
AnnaBridge 126:abea610beb85 2037 ((((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 2038 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2039 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2040 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2041 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC3))) \
AnnaBridge 126:abea610beb85 2042 || \
AnnaBridge 126:abea610beb85 2043 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2044 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2045 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2046 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC1))) \
AnnaBridge 126:abea610beb85 2047 || \
AnnaBridge 126:abea610beb85 2048 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2049 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2050 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2051 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC2))))
AnnaBridge 126:abea610beb85 2052
AnnaBridge 126:abea610beb85 2053 #endif /* STM32F303x8 || STM32F334x8 || STM32F328xx */
AnnaBridge 126:abea610beb85 2054
AnnaBridge 126:abea610beb85 2055 #if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 2056
AnnaBridge 126:abea610beb85 2057 #define IS_COMP_INVERTINGINPUT(INPUT) (((INPUT) == COMP_INVERTINGINPUT_1_4VREFINT) || \
AnnaBridge 126:abea610beb85 2058 ((INPUT) == COMP_INVERTINGINPUT_1_2VREFINT) || \
AnnaBridge 126:abea610beb85 2059 ((INPUT) == COMP_INVERTINGINPUT_3_4VREFINT) || \
AnnaBridge 126:abea610beb85 2060 ((INPUT) == COMP_INVERTINGINPUT_VREFINT) || \
AnnaBridge 126:abea610beb85 2061 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH1) || \
AnnaBridge 126:abea610beb85 2062 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH2) || \
AnnaBridge 126:abea610beb85 2063 ((INPUT) == COMP_INVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2064 ((INPUT) == COMP_INVERTINGINPUT_IO2))
AnnaBridge 126:abea610beb85 2065
AnnaBridge 126:abea610beb85 2066 #define IS_COMP_NONINVERTINGINPUT(INPUT) (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2067 ((INPUT) == COMP_NONINVERTINGINPUT_IO2) || \
AnnaBridge 126:abea610beb85 2068 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))
AnnaBridge 126:abea610beb85 2069
AnnaBridge 126:abea610beb85 2070 /* STM32F302xB/xC, STM32F303xB/xC, STM32F358xx devices comparator instances non inverting source values */
AnnaBridge 126:abea610beb85 2071 #define IS_COMP_NONINVERTINGINPUT_INSTANCE(INSTANCE, INPUT) \
AnnaBridge 126:abea610beb85 2072 ((((INSTANCE) == COMP1) && \
AnnaBridge 126:abea610beb85 2073 (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2074 ((INPUT) == COMP_NONINVERTINGINPUT_IO2) || \
AnnaBridge 126:abea610beb85 2075 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))) \
AnnaBridge 126:abea610beb85 2076 || \
AnnaBridge 126:abea610beb85 2077 ((((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2078 ((INPUT) == COMP_NONINVERTINGINPUT_IO2))))
AnnaBridge 126:abea610beb85 2079
AnnaBridge 126:abea610beb85 2080 #define IS_COMP_WINDOWMODE(WINDOWMODE) (((WINDOWMODE) == COMP_WINDOWMODE_DISABLE) || \
AnnaBridge 126:abea610beb85 2081 ((WINDOWMODE) == COMP_WINDOWMODE_ENABLE))
AnnaBridge 126:abea610beb85 2082
AnnaBridge 126:abea610beb85 2083 #define IS_COMP_MODE(MODE) (((MODE) == COMP_MODE_HIGHSPEED) || \
AnnaBridge 126:abea610beb85 2084 ((MODE) == COMP_MODE_MEDIUMSPEED) || \
AnnaBridge 126:abea610beb85 2085 ((MODE) == COMP_MODE_LOWPOWER) || \
AnnaBridge 126:abea610beb85 2086 ((MODE) == COMP_MODE_ULTRALOWPOWER))
AnnaBridge 126:abea610beb85 2087
AnnaBridge 126:abea610beb85 2088 #define IS_COMP_HYSTERESIS(HYSTERESIS) (((HYSTERESIS) == COMP_HYSTERESIS_NONE) || \
AnnaBridge 126:abea610beb85 2089 ((HYSTERESIS) == COMP_HYSTERESIS_LOW) || \
AnnaBridge 126:abea610beb85 2090 ((HYSTERESIS) == COMP_HYSTERESIS_MEDIUM) || \
AnnaBridge 126:abea610beb85 2091 ((HYSTERESIS) == COMP_HYSTERESIS_HIGH))
AnnaBridge 126:abea610beb85 2092
AnnaBridge 126:abea610beb85 2093 #if defined(STM32F302xC)
AnnaBridge 126:abea610beb85 2094
AnnaBridge 126:abea610beb85 2095 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2096 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2097 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2098 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2099 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2100 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2101 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2102 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2103 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2104 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2105 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2106 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 2107 ((OUTPUT) == COMP_OUTPUT_TIM4IC2) || \
AnnaBridge 126:abea610beb85 2108 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR) || \
AnnaBridge 126:abea610beb85 2109 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2110 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2111 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR) || \
AnnaBridge 126:abea610beb85 2112 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2113 ((OUTPUT) == COMP_OUTPUT_TIM4IC4))
AnnaBridge 126:abea610beb85 2114
AnnaBridge 126:abea610beb85 2115 #define IS_COMP_OUTPUT_INSTANCE(INSTANCE, OUTPUT) \
AnnaBridge 126:abea610beb85 2116 ((((INSTANCE) == COMP1) && \
AnnaBridge 126:abea610beb85 2117 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2118 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2119 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2120 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2121 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2122 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2123 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2124 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2125 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2126 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))) \
AnnaBridge 126:abea610beb85 2127 || \
AnnaBridge 126:abea610beb85 2128 (((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 2129 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2130 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2131 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2132 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2133 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2134 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2135 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2136 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2137 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2138 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))) \
AnnaBridge 126:abea610beb85 2139 || \
AnnaBridge 126:abea610beb85 2140 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2141 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2142 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2143 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2144 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2145 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2146 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2147 ((OUTPUT) == COMP_OUTPUT_TIM4IC2) || \
AnnaBridge 126:abea610beb85 2148 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 2149 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR))) \
AnnaBridge 126:abea610beb85 2150 || \
AnnaBridge 126:abea610beb85 2151 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2152 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2153 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2154 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2155 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2156 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2157 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2158 ((OUTPUT) == COMP_OUTPUT_TIM4IC4) || \
AnnaBridge 126:abea610beb85 2159 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2160 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR))))
AnnaBridge 126:abea610beb85 2161
AnnaBridge 126:abea610beb85 2162 #define IS_COMP_BLANKINGSRCE(SOURCE) (((SOURCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2163 ((SOURCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2164 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2165 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC3) || \
AnnaBridge 126:abea610beb85 2166 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2167 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2168 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC1) || \
AnnaBridge 126:abea610beb85 2169 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC2))
AnnaBridge 126:abea610beb85 2170
AnnaBridge 126:abea610beb85 2171 /* STM32F302xB/STM32F302xC/STM32F302xE devices comparator instances blanking source values */
AnnaBridge 126:abea610beb85 2172 #define IS_COMP_BLANKINGSRCE_INSTANCE(INSTANCE, BLANKINGSRCE) \
AnnaBridge 126:abea610beb85 2173 (((((INSTANCE) == COMP1) || ((INSTANCE) == COMP2)) && \
AnnaBridge 126:abea610beb85 2174 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2175 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2176 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2177 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC3))) \
AnnaBridge 126:abea610beb85 2178 || \
AnnaBridge 126:abea610beb85 2179 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2180 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2181 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2182 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC1))) \
AnnaBridge 126:abea610beb85 2183 || \
AnnaBridge 126:abea610beb85 2184 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2185 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2186 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2187 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC2))))
AnnaBridge 126:abea610beb85 2188
AnnaBridge 126:abea610beb85 2189 #endif /* STM32F302xC */
AnnaBridge 126:abea610beb85 2190
AnnaBridge 126:abea610beb85 2191 #if defined(STM32F303xC) || defined(STM32F358xx)
AnnaBridge 126:abea610beb85 2192
AnnaBridge 126:abea610beb85 2193 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2194 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2195 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2196 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2197 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2198 ((OUTPUT) == COMP_OUTPUT_TIM1IC2) || \
AnnaBridge 126:abea610beb85 2199 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2200 ((OUTPUT) == COMP_OUTPUT_TIM2IC1) || \
AnnaBridge 126:abea610beb85 2201 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2202 ((OUTPUT) == COMP_OUTPUT_TIM2IC3) || \
AnnaBridge 126:abea610beb85 2203 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2204 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2205 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2206 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2207 ((OUTPUT) == COMP_OUTPUT_TIM3IC2) || \
AnnaBridge 126:abea610beb85 2208 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2209 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2210 ((OUTPUT) == COMP_OUTPUT_TIM4IC1) || \
AnnaBridge 126:abea610beb85 2211 ((OUTPUT) == COMP_OUTPUT_TIM4IC2) || \
AnnaBridge 126:abea610beb85 2212 ((OUTPUT) == COMP_OUTPUT_TIM4IC3) || \
AnnaBridge 126:abea610beb85 2213 ((OUTPUT) == COMP_OUTPUT_TIM4IC4) || \
AnnaBridge 126:abea610beb85 2214 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2215 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2216 ((OUTPUT) == COMP_OUTPUT_TIM8OCREFCLR) || \
AnnaBridge 126:abea610beb85 2217 ((OUTPUT) == COMP_OUTPUT_TIM15IC1) || \
AnnaBridge 126:abea610beb85 2218 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 2219 ((OUTPUT) == COMP_OUTPUT_TIM15BKIN) || \
AnnaBridge 126:abea610beb85 2220 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR) || \
AnnaBridge 126:abea610beb85 2221 ((OUTPUT) == COMP_OUTPUT_TIM16BKIN) || \
AnnaBridge 126:abea610beb85 2222 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2223 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR) || \
AnnaBridge 126:abea610beb85 2224 ((OUTPUT) == COMP_OUTPUT_TIM17BKIN) || \
AnnaBridge 126:abea610beb85 2225 ((OUTPUT) == COMP_OUTPUT_TIM17IC1) || \
AnnaBridge 126:abea610beb85 2226 ((OUTPUT) == COMP_OUTPUT_TIM17OCREFCLR))
AnnaBridge 126:abea610beb85 2227
AnnaBridge 126:abea610beb85 2228 #define IS_COMP_OUTPUT_INSTANCE(INSTANCE, OUTPUT) \
AnnaBridge 126:abea610beb85 2229 ((((INSTANCE) == COMP1) && \
AnnaBridge 126:abea610beb85 2230 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2231 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2232 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2233 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2234 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2235 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2236 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2237 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2238 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2239 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2240 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2241 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))) \
AnnaBridge 126:abea610beb85 2242 || \
AnnaBridge 126:abea610beb85 2243 (((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 2244 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2245 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2246 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2247 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2248 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2249 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2250 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2251 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2252 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2253 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2254 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2255 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))) \
AnnaBridge 126:abea610beb85 2256 || \
AnnaBridge 126:abea610beb85 2257 (((INSTANCE) == COMP3) && \
AnnaBridge 126:abea610beb85 2258 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2259 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2260 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2261 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2262 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2263 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2264 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2265 ((OUTPUT) == COMP_OUTPUT_TIM3IC2) || \
AnnaBridge 126:abea610beb85 2266 ((OUTPUT) == COMP_OUTPUT_TIM4IC1) || \
AnnaBridge 126:abea610beb85 2267 ((OUTPUT) == COMP_OUTPUT_TIM15IC1) || \
AnnaBridge 126:abea610beb85 2268 ((OUTPUT) == COMP_OUTPUT_TIM15BKIN))) \
AnnaBridge 126:abea610beb85 2269 || \
AnnaBridge 126:abea610beb85 2270 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2271 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2272 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2273 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2274 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2275 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2276 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2277 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2278 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2279 ((OUTPUT) == COMP_OUTPUT_TIM4IC2) || \
AnnaBridge 126:abea610beb85 2280 ((OUTPUT) == COMP_OUTPUT_TIM8OCREFCLR) || \
AnnaBridge 126:abea610beb85 2281 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 2282 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR))) \
AnnaBridge 126:abea610beb85 2283 || \
AnnaBridge 126:abea610beb85 2284 (((INSTANCE) == COMP5) && \
AnnaBridge 126:abea610beb85 2285 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2286 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2287 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2288 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2289 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2290 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2291 ((OUTPUT) == COMP_OUTPUT_TIM2IC1) || \
AnnaBridge 126:abea610beb85 2292 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2293 ((OUTPUT) == COMP_OUTPUT_TIM4IC3) || \
AnnaBridge 126:abea610beb85 2294 ((OUTPUT) == COMP_OUTPUT_TIM8OCREFCLR) || \
AnnaBridge 126:abea610beb85 2295 ((OUTPUT) == COMP_OUTPUT_TIM16BKIN) || \
AnnaBridge 126:abea610beb85 2296 ((OUTPUT) == COMP_OUTPUT_TIM17IC1))) \
AnnaBridge 126:abea610beb85 2297 || \
AnnaBridge 126:abea610beb85 2298 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2299 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2300 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2301 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2302 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2303 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2304 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2305 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2306 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2307 ((OUTPUT) == COMP_OUTPUT_TIM4IC4) || \
AnnaBridge 126:abea610beb85 2308 ((OUTPUT) == COMP_OUTPUT_TIM8OCREFCLR) || \
AnnaBridge 126:abea610beb85 2309 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2310 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR))) \
AnnaBridge 126:abea610beb85 2311 || \
AnnaBridge 126:abea610beb85 2312 (((INSTANCE) == COMP7) && \
AnnaBridge 126:abea610beb85 2313 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2314 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2315 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2316 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2317 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2318 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2319 ((OUTPUT) == COMP_OUTPUT_TIM1IC2) || \
AnnaBridge 126:abea610beb85 2320 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2321 ((OUTPUT) == COMP_OUTPUT_TIM2IC3) || \
AnnaBridge 126:abea610beb85 2322 ((OUTPUT) == COMP_OUTPUT_TIM8OCREFCLR) || \
AnnaBridge 126:abea610beb85 2323 ((OUTPUT) == COMP_OUTPUT_TIM17BKIN) || \
AnnaBridge 126:abea610beb85 2324 ((OUTPUT) == COMP_OUTPUT_TIM17OCREFCLR))))
AnnaBridge 126:abea610beb85 2325
AnnaBridge 126:abea610beb85 2326 #define IS_COMP_BLANKINGSRCE(SOURCE) (((SOURCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2327 ((SOURCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2328 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2329 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC3) || \
AnnaBridge 126:abea610beb85 2330 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2331 ((SOURCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2332 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2333 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC1) || \
AnnaBridge 126:abea610beb85 2334 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC2))
AnnaBridge 126:abea610beb85 2335
AnnaBridge 126:abea610beb85 2336 /* STM32F303xE/STM32F398xx/STM32F303xB/STM32F303xC/STM32F358xx devices comparator instances blanking source values */
AnnaBridge 126:abea610beb85 2337 #define IS_COMP_BLANKINGSRCE_INSTANCE(INSTANCE, BLANKINGSRCE) \
AnnaBridge 126:abea610beb85 2338 (((((INSTANCE) == COMP1) || ((INSTANCE) == COMP2)) && \
AnnaBridge 126:abea610beb85 2339 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2340 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2341 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2342 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC3))) \
AnnaBridge 126:abea610beb85 2343 || \
AnnaBridge 126:abea610beb85 2344 (((INSTANCE) == COMP3) && \
AnnaBridge 126:abea610beb85 2345 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2346 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2347 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC4))) \
AnnaBridge 126:abea610beb85 2348 || \
AnnaBridge 126:abea610beb85 2349 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2350 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2351 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2352 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2353 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC1))) \
AnnaBridge 126:abea610beb85 2354 || \
AnnaBridge 126:abea610beb85 2355 (((INSTANCE) == COMP5) && \
AnnaBridge 126:abea610beb85 2356 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2357 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2358 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC3))) \
AnnaBridge 126:abea610beb85 2359 || \
AnnaBridge 126:abea610beb85 2360 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2361 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2362 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2363 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2364 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC2))) \
AnnaBridge 126:abea610beb85 2365 || \
AnnaBridge 126:abea610beb85 2366 (((INSTANCE) == COMP7) && \
AnnaBridge 126:abea610beb85 2367 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2368 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2369 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2370 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC2))))
AnnaBridge 126:abea610beb85 2371
AnnaBridge 126:abea610beb85 2372 #endif /* STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 2373
AnnaBridge 126:abea610beb85 2374 #endif /* STM32F302xC || STM32F303xC || STM32F358xx */
AnnaBridge 126:abea610beb85 2375
AnnaBridge 126:abea610beb85 2376 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)
AnnaBridge 126:abea610beb85 2377
AnnaBridge 126:abea610beb85 2378 #define IS_COMP_INVERTINGINPUT(INPUT) (((INPUT) == COMP_INVERTINGINPUT_1_4VREFINT) || \
AnnaBridge 126:abea610beb85 2379 ((INPUT) == COMP_INVERTINGINPUT_1_2VREFINT) || \
AnnaBridge 126:abea610beb85 2380 ((INPUT) == COMP_INVERTINGINPUT_3_4VREFINT) || \
AnnaBridge 126:abea610beb85 2381 ((INPUT) == COMP_INVERTINGINPUT_VREFINT) || \
AnnaBridge 126:abea610beb85 2382 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH1) || \
AnnaBridge 126:abea610beb85 2383 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH2) || \
AnnaBridge 126:abea610beb85 2384 ((INPUT) == COMP_INVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2385 ((INPUT) == COMP_INVERTINGINPUT_IO2))
AnnaBridge 126:abea610beb85 2386
AnnaBridge 126:abea610beb85 2387 #define IS_COMP_NONINVERTINGINPUT(INPUT) (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2388 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))
AnnaBridge 126:abea610beb85 2389
AnnaBridge 126:abea610beb85 2390 /* STM32F302xE/STM32F303xE/STM32F398xx devices comparator instances non inverting source values */
AnnaBridge 126:abea610beb85 2391 #define IS_COMP_NONINVERTINGINPUT_INSTANCE(INSTANCE, INPUT) \
AnnaBridge 126:abea610beb85 2392 ((((INSTANCE) == COMP1) && \
AnnaBridge 126:abea610beb85 2393 (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2394 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))) \
AnnaBridge 126:abea610beb85 2395 || \
AnnaBridge 126:abea610beb85 2396 (((INPUT) == COMP_NONINVERTINGINPUT_IO1)))
AnnaBridge 126:abea610beb85 2397
AnnaBridge 126:abea610beb85 2398 #define IS_COMP_WINDOWMODE(WINDOWMODE) (((WINDOWMODE) == COMP_WINDOWMODE_DISABLE) || \
AnnaBridge 126:abea610beb85 2399 ((WINDOWMODE) == COMP_WINDOWMODE_ENABLE))
AnnaBridge 126:abea610beb85 2400
AnnaBridge 126:abea610beb85 2401 #define IS_COMP_MODE(MODE) ((MODE) == (MODE)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 2402
AnnaBridge 126:abea610beb85 2403 #define IS_COMP_HYSTERESIS(HYSTERESIS) ((HYSTERESIS) == (HYSTERESIS)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 2404
AnnaBridge 126:abea610beb85 2405 #if defined(STM32F302xE)
AnnaBridge 126:abea610beb85 2406
AnnaBridge 126:abea610beb85 2407 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2408 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2409 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2410 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2411 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2412 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2413 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2414 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2415 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2416 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2417 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2418 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 2419 ((OUTPUT) == COMP_OUTPUT_TIM4IC2) || \
AnnaBridge 126:abea610beb85 2420 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR) || \
AnnaBridge 126:abea610beb85 2421 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2422 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2423 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR) || \
AnnaBridge 126:abea610beb85 2424 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2425 ((OUTPUT) == COMP_OUTPUT_TIM4IC4))
AnnaBridge 126:abea610beb85 2426
AnnaBridge 126:abea610beb85 2427 #define IS_COMP_OUTPUT_INSTANCE(INSTANCE, OUTPUT) \
AnnaBridge 126:abea610beb85 2428 ((((INSTANCE) == COMP1) && \
AnnaBridge 126:abea610beb85 2429 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2430 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2431 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2432 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2433 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2434 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2435 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2436 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2437 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2438 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))) \
AnnaBridge 126:abea610beb85 2439 || \
AnnaBridge 126:abea610beb85 2440 (((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 2441 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2442 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2443 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2444 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2445 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2446 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2447 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2448 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2449 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2450 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))) \
AnnaBridge 126:abea610beb85 2451 || \
AnnaBridge 126:abea610beb85 2452 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2453 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2454 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2455 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2456 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2457 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2458 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2459 ((OUTPUT) == COMP_OUTPUT_TIM4IC2) || \
AnnaBridge 126:abea610beb85 2460 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 2461 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR))) \
AnnaBridge 126:abea610beb85 2462 || \
AnnaBridge 126:abea610beb85 2463 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2464 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2465 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2466 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_BRK2) || \
AnnaBridge 126:abea610beb85 2467 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2468 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2469 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2470 ((OUTPUT) == COMP_OUTPUT_TIM4IC4) || \
AnnaBridge 126:abea610beb85 2471 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2472 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR))))
AnnaBridge 126:abea610beb85 2473
AnnaBridge 126:abea610beb85 2474 #define IS_COMP_BLANKINGSRCE(SOURCE) (((SOURCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2475 ((SOURCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2476 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2477 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC3) || \
AnnaBridge 126:abea610beb85 2478 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2479 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2480 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC1) || \
AnnaBridge 126:abea610beb85 2481 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC2))
AnnaBridge 126:abea610beb85 2482
AnnaBridge 126:abea610beb85 2483 /* STM32F302xB/STM32F302xC/STM32F302xE devices comparator instances blanking source values */
AnnaBridge 126:abea610beb85 2484 #define IS_COMP_BLANKINGSRCE_INSTANCE(INSTANCE, BLANKINGSRCE) \
AnnaBridge 126:abea610beb85 2485 (((((INSTANCE) == COMP1) || ((INSTANCE) == COMP2)) && \
AnnaBridge 126:abea610beb85 2486 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2487 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2488 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2489 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC3))) \
AnnaBridge 126:abea610beb85 2490 || \
AnnaBridge 126:abea610beb85 2491 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2492 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2493 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2494 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC1))) \
AnnaBridge 126:abea610beb85 2495 || \
AnnaBridge 126:abea610beb85 2496 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2497 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2498 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2499 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC2))))
AnnaBridge 126:abea610beb85 2500
AnnaBridge 126:abea610beb85 2501 #endif /* STM32F302xE */
AnnaBridge 126:abea610beb85 2502
AnnaBridge 126:abea610beb85 2503 #if defined(STM32F303xE) || defined(STM32F398xx)
AnnaBridge 126:abea610beb85 2504
AnnaBridge 126:abea610beb85 2505 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2506 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2507 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2508 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2509 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2510 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2511 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2512 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2513 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2514 ((OUTPUT) == COMP_OUTPUT_TIM20OCREFCLR) || \
AnnaBridge 126:abea610beb85 2515 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2516 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2517 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2518 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2519 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2520 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN) || \
AnnaBridge 126:abea610beb85 2521 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2522 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2523 ((OUTPUT) == COMP_OUTPUT_TIM3IC2) || \
AnnaBridge 126:abea610beb85 2524 ((OUTPUT) == COMP_OUTPUT_TIM4IC1) || \
AnnaBridge 126:abea610beb85 2525 ((OUTPUT) == COMP_OUTPUT_TIM15IC1) || \
AnnaBridge 126:abea610beb85 2526 ((OUTPUT) == COMP_OUTPUT_TIM15BKIN) || \
AnnaBridge 126:abea610beb85 2527 ((OUTPUT) == COMP_OUTPUT_TIM8OCREFCLR) || \
AnnaBridge 126:abea610beb85 2528 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2529 ((OUTPUT) == COMP_OUTPUT_TIM4IC1) || \
AnnaBridge 126:abea610beb85 2530 ((OUTPUT) == COMP_OUTPUT_TIM15IC1) || \
AnnaBridge 126:abea610beb85 2531 ((OUTPUT) == COMP_OUTPUT_TIM2IC1) || \
AnnaBridge 126:abea610beb85 2532 ((OUTPUT) == COMP_OUTPUT_TIM4IC3) || \
AnnaBridge 126:abea610beb85 2533 ((OUTPUT) == COMP_OUTPUT_TIM16BKIN) || \
AnnaBridge 126:abea610beb85 2534 ((OUTPUT) == COMP_OUTPUT_TIM17IC1) || \
AnnaBridge 126:abea610beb85 2535 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2536 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2537 ((OUTPUT) == COMP_OUTPUT_TIM4IC4) || \
AnnaBridge 126:abea610beb85 2538 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR) || \
AnnaBridge 126:abea610beb85 2539 ((OUTPUT) == COMP_OUTPUT_TIM2IC3) || \
AnnaBridge 126:abea610beb85 2540 ((OUTPUT) == COMP_OUTPUT_TIM1IC2) || \
AnnaBridge 126:abea610beb85 2541 ((OUTPUT) == COMP_OUTPUT_TIM17BKIN) || \
AnnaBridge 126:abea610beb85 2542 ((OUTPUT) == COMP_OUTPUT_TIM17OCREFCLR))
AnnaBridge 126:abea610beb85 2543
AnnaBridge 126:abea610beb85 2544 #define IS_COMP_OUTPUT_INSTANCE(INSTANCE, OUTPUT) \
AnnaBridge 126:abea610beb85 2545 ((((INSTANCE) == COMP1) && \
AnnaBridge 126:abea610beb85 2546 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2547 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2548 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2549 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2550 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2551 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2552 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN) || \
AnnaBridge 126:abea610beb85 2553 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2554 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2555 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2556 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2557 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2558 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2559 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2560 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))) \
AnnaBridge 126:abea610beb85 2561 || \
AnnaBridge 126:abea610beb85 2562 (((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 2563 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2564 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2565 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2566 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2567 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2568 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2569 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN) || \
AnnaBridge 126:abea610beb85 2570 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2571 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2572 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 126:abea610beb85 2573 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 126:abea610beb85 2574 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2575 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2576 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2577 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2578 ((OUTPUT) == COMP_OUTPUT_TIM20OCREFCLR))) \
AnnaBridge 126:abea610beb85 2579 || \
AnnaBridge 126:abea610beb85 2580 (((INSTANCE) == COMP3) && \
AnnaBridge 126:abea610beb85 2581 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2582 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2583 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2584 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2585 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2586 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2587 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN) || \
AnnaBridge 126:abea610beb85 2588 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2589 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2590 ((OUTPUT) == COMP_OUTPUT_TIM3IC2) || \
AnnaBridge 126:abea610beb85 2591 ((OUTPUT) == COMP_OUTPUT_TIM4IC1) || \
AnnaBridge 126:abea610beb85 2592 ((OUTPUT) == COMP_OUTPUT_TIM15IC1) || \
AnnaBridge 126:abea610beb85 2593 ((OUTPUT) == COMP_OUTPUT_TIM15BKIN))) \
AnnaBridge 126:abea610beb85 2594 || \
AnnaBridge 126:abea610beb85 2595 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2596 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2597 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2598 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2599 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2600 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2601 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2602 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN) || \
AnnaBridge 126:abea610beb85 2603 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2604 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2605 ((OUTPUT) == COMP_OUTPUT_TIM3IC3) || \
AnnaBridge 126:abea610beb85 2606 ((OUTPUT) == COMP_OUTPUT_TIM4IC2) || \
AnnaBridge 126:abea610beb85 2607 ((OUTPUT) == COMP_OUTPUT_TIM8OCREFCLR) || \
AnnaBridge 126:abea610beb85 2608 ((OUTPUT) == COMP_OUTPUT_TIM15IC2) || \
AnnaBridge 126:abea610beb85 2609 ((OUTPUT) == COMP_OUTPUT_TIM15OCREFCLR))) \
AnnaBridge 126:abea610beb85 2610 || \
AnnaBridge 126:abea610beb85 2611 (((INSTANCE) == COMP5) && \
AnnaBridge 126:abea610beb85 2612 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2613 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2614 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2615 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2616 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2617 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2618 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN) || \
AnnaBridge 126:abea610beb85 2619 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2620 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2621 ((OUTPUT) == COMP_OUTPUT_TIM2IC1) || \
AnnaBridge 126:abea610beb85 2622 ((OUTPUT) == COMP_OUTPUT_TIM4IC3) || \
AnnaBridge 126:abea610beb85 2623 ((OUTPUT) == COMP_OUTPUT_TIM16BKIN) || \
AnnaBridge 126:abea610beb85 2624 ((OUTPUT) == COMP_OUTPUT_TIM17IC1))) \
AnnaBridge 126:abea610beb85 2625 || \
AnnaBridge 126:abea610beb85 2626 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2627 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2628 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2629 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2630 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2631 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2632 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2633 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN) || \
AnnaBridge 126:abea610beb85 2634 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2635 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2636 ((OUTPUT) == COMP_OUTPUT_TIM2IC2) || \
AnnaBridge 126:abea610beb85 2637 ((OUTPUT) == COMP_OUTPUT_COMP6_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2638 ((OUTPUT) == COMP_OUTPUT_TIM4IC4) || \
AnnaBridge 126:abea610beb85 2639 ((OUTPUT) == COMP_OUTPUT_TIM16IC1) || \
AnnaBridge 126:abea610beb85 2640 ((OUTPUT) == COMP_OUTPUT_TIM16OCREFCLR))) \
AnnaBridge 126:abea610beb85 2641 || \
AnnaBridge 126:abea610beb85 2642 (((INSTANCE) == COMP7) && \
AnnaBridge 126:abea610beb85 2643 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2644 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 126:abea610beb85 2645 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2) || \
AnnaBridge 126:abea610beb85 2646 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN) || \
AnnaBridge 126:abea610beb85 2647 ((OUTPUT) == COMP_OUTPUT_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2648 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2) || \
AnnaBridge 126:abea610beb85 2649 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN) || \
AnnaBridge 126:abea610beb85 2650 ((OUTPUT) == COMP_OUTPUT_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2651 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN2_TIM8BKIN2_TIM20BKIN2) || \
AnnaBridge 126:abea610beb85 2652 ((OUTPUT) == COMP_OUTPUT_TIM1IC2) || \
AnnaBridge 126:abea610beb85 2653 ((OUTPUT) == COMP_OUTPUT_TIM2IC3) || \
AnnaBridge 126:abea610beb85 2654 ((OUTPUT) == COMP_OUTPUT_TIM17BKIN) || \
AnnaBridge 126:abea610beb85 2655 ((OUTPUT) == COMP_OUTPUT_TIM17OCREFCLR))))
AnnaBridge 126:abea610beb85 2656
AnnaBridge 126:abea610beb85 2657 #define IS_COMP_BLANKINGSRCE(SOURCE) (((SOURCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2658 ((SOURCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2659 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2660 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC3) || \
AnnaBridge 126:abea610beb85 2661 ((SOURCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2662 ((SOURCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2663 ((SOURCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2664 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC1) || \
AnnaBridge 126:abea610beb85 2665 ((SOURCE) == COMP_BLANKINGSRCE_TIM15OC2))
AnnaBridge 126:abea610beb85 2666
AnnaBridge 126:abea610beb85 2667 /* STM32F303xE/STM32F398xx/STM32F303xB/STM32F303xC/STM32F358xx devices comparator instances blanking source values */
AnnaBridge 126:abea610beb85 2668 #define IS_COMP_BLANKINGSRCE_INSTANCE(INSTANCE, BLANKINGSRCE) \
AnnaBridge 126:abea610beb85 2669 (((((INSTANCE) == COMP1) || ((INSTANCE) == COMP2)) && \
AnnaBridge 126:abea610beb85 2670 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2671 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2672 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC3) || \
AnnaBridge 126:abea610beb85 2673 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC3))) \
AnnaBridge 126:abea610beb85 2674 || \
AnnaBridge 126:abea610beb85 2675 (((INSTANCE) == COMP3) && \
AnnaBridge 126:abea610beb85 2676 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2677 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2678 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC4))) \
AnnaBridge 126:abea610beb85 2679 || \
AnnaBridge 126:abea610beb85 2680 (((INSTANCE) == COMP4) && \
AnnaBridge 126:abea610beb85 2681 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2682 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC4) || \
AnnaBridge 126:abea610beb85 2683 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2684 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC1))) \
AnnaBridge 126:abea610beb85 2685 || \
AnnaBridge 126:abea610beb85 2686 (((INSTANCE) == COMP5) && \
AnnaBridge 126:abea610beb85 2687 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2688 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2689 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM3OC3))) \
AnnaBridge 126:abea610beb85 2690 || \
AnnaBridge 126:abea610beb85 2691 (((INSTANCE) == COMP6) && \
AnnaBridge 126:abea610beb85 2692 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2693 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2694 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM2OC4) || \
AnnaBridge 126:abea610beb85 2695 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC2))) \
AnnaBridge 126:abea610beb85 2696 || \
AnnaBridge 126:abea610beb85 2697 (((INSTANCE) == COMP7) && \
AnnaBridge 126:abea610beb85 2698 (((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE) || \
AnnaBridge 126:abea610beb85 2699 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM1OC5) || \
AnnaBridge 126:abea610beb85 2700 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM8OC5) || \
AnnaBridge 126:abea610beb85 2701 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_TIM15OC2))))
AnnaBridge 126:abea610beb85 2702
AnnaBridge 126:abea610beb85 2703 #endif /* STM32F303xE || STM32F398xx */
AnnaBridge 126:abea610beb85 2704
AnnaBridge 126:abea610beb85 2705 #endif /* STM32F302xE || STM32F303xE || STM32F398xx */
AnnaBridge 126:abea610beb85 2706
AnnaBridge 126:abea610beb85 2707 #if defined(STM32F373xC) || defined(STM32F378xx)
AnnaBridge 126:abea610beb85 2708
AnnaBridge 126:abea610beb85 2709 #define IS_COMP_INVERTINGINPUT(INPUT) (((INPUT) == COMP_INVERTINGINPUT_1_4VREFINT) || \
AnnaBridge 126:abea610beb85 2710 ((INPUT) == COMP_INVERTINGINPUT_1_2VREFINT) || \
AnnaBridge 126:abea610beb85 2711 ((INPUT) == COMP_INVERTINGINPUT_3_4VREFINT) || \
AnnaBridge 126:abea610beb85 2712 ((INPUT) == COMP_INVERTINGINPUT_VREFINT) || \
AnnaBridge 126:abea610beb85 2713 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH1) || \
AnnaBridge 126:abea610beb85 2714 ((INPUT) == COMP_INVERTINGINPUT_DAC1_CH2) || \
AnnaBridge 126:abea610beb85 2715 ((INPUT) == COMP_INVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2716 ((INPUT) == COMP_INVERTINGINPUT_DAC2_CH1))
AnnaBridge 126:abea610beb85 2717
AnnaBridge 126:abea610beb85 2718 #define IS_COMP_NONINVERTINGINPUT(INPUT) (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2719 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))
AnnaBridge 126:abea610beb85 2720
AnnaBridge 126:abea610beb85 2721 /* STM32F373xB/xC, STM32F378xx devices comparator instances non inverting source values */
AnnaBridge 126:abea610beb85 2722 #define IS_COMP_NONINVERTINGINPUT_INSTANCE(INSTANCE, INPUT) \
AnnaBridge 126:abea610beb85 2723 ((((INSTANCE) == COMP1) && \
AnnaBridge 126:abea610beb85 2724 (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 126:abea610beb85 2725 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))) \
AnnaBridge 126:abea610beb85 2726 || \
AnnaBridge 126:abea610beb85 2727 (((INPUT) == COMP_NONINVERTINGINPUT_IO1)))
AnnaBridge 126:abea610beb85 2728
AnnaBridge 126:abea610beb85 2729 #define IS_COMP_WINDOWMODE(WINDOWMODE) (((WINDOWMODE) == COMP_WINDOWMODE_DISABLE) || \
AnnaBridge 126:abea610beb85 2730 ((WINDOWMODE) == COMP_WINDOWMODE_ENABLE))
AnnaBridge 126:abea610beb85 2731
AnnaBridge 126:abea610beb85 2732 #define IS_COMP_MODE(MODE) (((MODE) == COMP_MODE_HIGHSPEED) || \
AnnaBridge 126:abea610beb85 2733 ((MODE) == COMP_MODE_MEDIUMSPEED) || \
AnnaBridge 126:abea610beb85 2734 ((MODE) == COMP_MODE_LOWPOWER) || \
AnnaBridge 126:abea610beb85 2735 ((MODE) == COMP_MODE_ULTRALOWPOWER))
AnnaBridge 126:abea610beb85 2736
AnnaBridge 126:abea610beb85 2737 #define IS_COMP_HYSTERESIS(HYSTERESIS) (((HYSTERESIS) == COMP_HYSTERESIS_NONE) || \
AnnaBridge 126:abea610beb85 2738 ((HYSTERESIS) == COMP_HYSTERESIS_LOW) || \
AnnaBridge 126:abea610beb85 2739 ((HYSTERESIS) == COMP_HYSTERESIS_MEDIUM) || \
AnnaBridge 126:abea610beb85 2740 ((HYSTERESIS) == COMP_HYSTERESIS_HIGH))
AnnaBridge 126:abea610beb85 2741
AnnaBridge 126:abea610beb85 2742 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2743 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2744 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2745 ((OUTPUT) == COMP_OUTPUT_COMP1_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2746 ((OUTPUT) == COMP_OUTPUT_COMP1_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2747 ((OUTPUT) == COMP_OUTPUT_COMP2_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2748 ((OUTPUT) == COMP_OUTPUT_COMP2_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2749 ((OUTPUT) == COMP_OUTPUT_TIM4IC1) || \
AnnaBridge 126:abea610beb85 2750 ((OUTPUT) == COMP_OUTPUT_TIM4OCREFCLR) || \
AnnaBridge 126:abea610beb85 2751 ((OUTPUT) == COMP_OUTPUT_TIM5IC4) || \
AnnaBridge 126:abea610beb85 2752 ((OUTPUT) == COMP_OUTPUT_TIM5OCREFCLR) || \
AnnaBridge 126:abea610beb85 2753 ((OUTPUT) == COMP_OUTPUT_TIM15BKIN) || \
AnnaBridge 126:abea610beb85 2754 ((OUTPUT) == COMP_OUTPUT_TIM16BKIN))
AnnaBridge 126:abea610beb85 2755
AnnaBridge 126:abea610beb85 2756 #define IS_COMP_OUTPUT_INSTANCE(INSTANCE, OUTPUT) \
AnnaBridge 126:abea610beb85 2757 ((((INSTANCE) == COMP1) && \
AnnaBridge 126:abea610beb85 2758 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2759 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2760 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2761 ((OUTPUT) == COMP_OUTPUT_COMP1_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2762 ((OUTPUT) == COMP_OUTPUT_COMP1_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2763 ((OUTPUT) == COMP_OUTPUT_TIM5IC4) || \
AnnaBridge 126:abea610beb85 2764 ((OUTPUT) == COMP_OUTPUT_TIM5OCREFCLR) || \
AnnaBridge 126:abea610beb85 2765 ((OUTPUT) == COMP_OUTPUT_TIM15BKIN))) \
AnnaBridge 126:abea610beb85 2766 || \
AnnaBridge 126:abea610beb85 2767 (((INSTANCE) == COMP2) && \
AnnaBridge 126:abea610beb85 2768 (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 126:abea610beb85 2769 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 126:abea610beb85 2770 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 126:abea610beb85 2771 ((OUTPUT) == COMP_OUTPUT_COMP2_TIM3IC1) || \
AnnaBridge 126:abea610beb85 2772 ((OUTPUT) == COMP_OUTPUT_COMP2_TIM3OCREFCLR) || \
AnnaBridge 126:abea610beb85 2773 ((OUTPUT) == COMP_OUTPUT_TIM4IC1) || \
AnnaBridge 126:abea610beb85 2774 ((OUTPUT) == COMP_OUTPUT_TIM4OCREFCLR) || \
AnnaBridge 126:abea610beb85 2775 ((OUTPUT) == COMP_OUTPUT_TIM16BKIN))))
AnnaBridge 126:abea610beb85 2776
AnnaBridge 126:abea610beb85 2777 #define IS_COMP_BLANKINGSRCE(SOURCE) ((SOURCE) == (SOURCE)) /*!< Not available: check always true */
AnnaBridge 126:abea610beb85 2778
AnnaBridge 126:abea610beb85 2779 /* STM32F373xB/STM32F373xC/STM32F378xx devices comparator instances blanking source values */
AnnaBridge 126:abea610beb85 2780 #define IS_COMP_BLANKINGSRCE_INSTANCE(INSTANCE, BLANKINGSRCE) \
AnnaBridge 126:abea610beb85 2781 ((((INSTANCE) == COMP1) || ((INSTANCE) == COMP2)) && \
AnnaBridge 126:abea610beb85 2782 ((BLANKINGSRCE) == COMP_BLANKINGSRCE_NONE))
AnnaBridge 126:abea610beb85 2783
AnnaBridge 126:abea610beb85 2784 #endif /* STM32F373xC || STM32F378xx */
AnnaBridge 126:abea610beb85 2785
AnnaBridge 126:abea610beb85 2786 /**
AnnaBridge 126:abea610beb85 2787 * @}
AnnaBridge 126:abea610beb85 2788 */
AnnaBridge 126:abea610beb85 2789
AnnaBridge 126:abea610beb85 2790 /**
AnnaBridge 126:abea610beb85 2791 * @}
AnnaBridge 126:abea610beb85 2792 */
AnnaBridge 126:abea610beb85 2793
AnnaBridge 126:abea610beb85 2794 /**
AnnaBridge 126:abea610beb85 2795 * @}
AnnaBridge 126:abea610beb85 2796 */
AnnaBridge 126:abea610beb85 2797
AnnaBridge 126:abea610beb85 2798 /**
AnnaBridge 126:abea610beb85 2799 * @}
AnnaBridge 126:abea610beb85 2800 */
AnnaBridge 126:abea610beb85 2801
AnnaBridge 126:abea610beb85 2802 #ifdef __cplusplus
AnnaBridge 126:abea610beb85 2803 }
AnnaBridge 126:abea610beb85 2804 #endif
AnnaBridge 126:abea610beb85 2805
AnnaBridge 126:abea610beb85 2806 #endif /* __STM32F3xx_HAL_COMP_EX_H */
AnnaBridge 126:abea610beb85 2807
AnnaBridge 126:abea610beb85 2808 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/