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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

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

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_DISCO_F303VC/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_comp_ex.h@168:b9e159c1930a
mbed library. Release version 164

Who changed what in which revision?

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