]> git.gir.st - tmk_keyboard.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F3XX/stm32f30x_comp.h
Merge commit '1fe4406f374291ab2e86e95a97341fd9c475fcb8'
[tmk_keyboard.git] / tmk_core / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_STM / TARGET_STM32F3XX / stm32f30x_comp.h
1 /**
2 ******************************************************************************
3 * @file stm32f30x_comp.h
4 * @author MCD Application Team
5 * @version V1.1.0
6 * @date 27-February-2014
7 * @brief This file contains all the functions prototypes for the COMP firmware
8 * library.
9 ******************************************************************************
10 * @attention
11 *
12 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
13 *
14 * Redistribution and use in source and binary forms, with or without modification,
15 * are permitted provided that the following conditions are met:
16 * 1. Redistributions of source code must retain the above copyright notice,
17 * this list of conditions and the following disclaimer.
18 * 2. Redistributions in binary form must reproduce the above copyright notice,
19 * this list of conditions and the following disclaimer in the documentation
20 * and/or other materials provided with the distribution.
21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
22 * may be used to endorse or promote products derived from this software
23 * without specific prior written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 *
36 ******************************************************************************
37 */
38
39 /* Define to prevent recursive inclusion -------------------------------------*/
40 #ifndef __STM32F30x_COMP_H
41 #define __STM32F30x_COMP_H
42
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46
47 /* Includes ------------------------------------------------------------------*/
48 #include "stm32f30x.h"
49
50 /** @addtogroup STM32F30x_StdPeriph_Driver
51 * @{
52 */
53
54 /** @addtogroup COMP
55 * @{
56 */
57
58 /* Exported types ------------------------------------------------------------*/
59
60 /**
61 * @brief COMP Init structure definition
62 */
63
64 typedef struct
65 {
66
67 uint32_t COMP_InvertingInput; /*!< Selects the inverting input of the comparator.
68 This parameter can be a value of @ref COMP_InvertingInput */
69
70 uint32_t COMP_NonInvertingInput; /*!< Selects the non inverting input of the comparator.
71 This parameter can be a value of @ref COMP_NonInvertingInput */
72
73 uint32_t COMP_Output; /*!< Selects the output redirection of the comparator.
74 This parameter can be a value of @ref COMP_Output */
75
76 uint32_t COMP_BlankingSrce; /*!< Selects the output blanking source of the comparator.
77 This parameter can be a value of @ref COMP_BlankingSrce */
78
79 uint32_t COMP_OutputPol; /*!< Selects the output polarity of the comparator.
80 This parameter can be a value of @ref COMP_OutputPoloarity */
81
82 uint32_t COMP_Hysteresis; /*!< Selects the hysteresis voltage of the comparator.
83 This parameter can be a value of @ref COMP_Hysteresis */
84
85 uint32_t COMP_Mode; /*!< Selects the operating mode of the comparator
86 and allows to adjust the speed/consumption.
87 This parameter can be a value of @ref COMP_Mode */
88 }COMP_InitTypeDef;
89
90 /* Exported constants --------------------------------------------------------*/
91
92 /** @defgroup COMP_Exported_Constants
93 * @{
94 */
95
96 /** @defgroup COMP_Selection
97 * @{
98 */
99
100 #define COMP_Selection_COMP1 ((uint32_t)0x00000000) /*!< COMP1 Selection */
101 #define COMP_Selection_COMP2 ((uint32_t)0x00000004) /*!< COMP2 Selection */
102 #define COMP_Selection_COMP3 ((uint32_t)0x00000008) /*!< COMP3 Selection */
103 #define COMP_Selection_COMP4 ((uint32_t)0x0000000C) /*!< COMP4 Selection */
104 #define COMP_Selection_COMP5 ((uint32_t)0x00000010) /*!< COMP5 Selection */
105 #define COMP_Selection_COMP6 ((uint32_t)0x00000014) /*!< COMP6 Selection */
106 #define COMP_Selection_COMP7 ((uint32_t)0x00000018) /*!< COMP7 Selection */
107
108 #define IS_COMP_ALL_PERIPH(PERIPH) (((PERIPH) == COMP_Selection_COMP1) || \
109 ((PERIPH) == COMP_Selection_COMP2) || \
110 ((PERIPH) == COMP_Selection_COMP3) || \
111 ((PERIPH) == COMP_Selection_COMP4) || \
112 ((PERIPH) == COMP_Selection_COMP5) || \
113 ((PERIPH) == COMP_Selection_COMP6) || \
114 ((PERIPH) == COMP_Selection_COMP7))
115
116 /**
117 * @}
118 */
119
120 /** @defgroup COMP_InvertingInput
121 * @{
122 */
123
124 #define COMP_InvertingInput_1_4VREFINT ((uint32_t)0x00000000) /*!< 1/4 VREFINT connected to comparator inverting input */
125 #define COMP_InvertingInput_1_2VREFINT COMP_CSR_COMPxINSEL_0 /*!< 1/2 VREFINT connected to comparator inverting input */
126 #define COMP_InvertingInput_3_4VREFINT COMP_CSR_COMPxINSEL_1 /*!< 3/4 VREFINT connected to comparator inverting input */
127 #define COMP_InvertingInput_VREFINT ((uint32_t)0x00000030) /*!< VREFINT connected to comparator inverting input */
128 #define COMP_InvertingInput_DAC1OUT1 COMP_CSR_COMPxINSEL_2 /*!< DAC1_OUT1 (PA4) connected to comparator inverting input */
129 #define COMP_InvertingInput_DAC1OUT2 ((uint32_t)0x00000050) /*!< DAC1_OUT2 (PA5) connected to comparator inverting input */
130
131 #define COMP_InvertingInput_IO1 ((uint32_t)0x00000060) /*!< I/O1 (PA0 for COMP1, PA2 for COMP2, PD15 for COMP3,
132 PE8 for COMP4, PD13 for COMP5, PD10 for COMP6,
133 PC0 for COMP7) connected to comparator inverting input */
134
135 #define COMP_InvertingInput_IO2 COMP_CSR_COMPxINSEL /*!< I/O2 (PB12 for COMP3, PB2 for COMP4, PB10 for COMP5,
136 PB15 for COMP6) connected to comparator inverting input */
137
138 #define COMP_InvertingInput_DAC2OUT1 COMP_CSR_COMPxINSEL_3 /*!< DAC2_OUT1 (PA6) connected to comparator inverting input */
139
140 #define IS_COMP_INVERTING_INPUT(INPUT) (((INPUT) == COMP_InvertingInput_1_4VREFINT) || \
141 ((INPUT) == COMP_InvertingInput_1_2VREFINT) || \
142 ((INPUT) == COMP_InvertingInput_3_4VREFINT) || \
143 ((INPUT) == COMP_InvertingInput_VREFINT) || \
144 ((INPUT) == COMP_InvertingInput_DAC1OUT1) || \
145 ((INPUT) == COMP_InvertingInput_DAC1OUT2) || \
146 ((INPUT) == COMP_InvertingInput_IO1) || \
147 ((INPUT) == COMP_InvertingInput_IO2) || \
148 ((INPUT) == COMP_InvertingInput_DAC2OUT1))
149 /**
150 * @}
151 */
152
153 /** @defgroup COMP_NonInvertingInput
154 * @{
155 */
156
157 #define COMP_NonInvertingInput_IO1 ((uint32_t)0x00000000) /*!< I/O1 (PA1 for COMP1, PA7 for COMP2, PB14 for COMP3,
158 PB0 for COMP4, PD12 for COMP5, PD11 for COMP6,
159 PA0 for COMP7) connected to comparator non inverting input */
160
161 #define COMP_NonInvertingInput_IO2 COMP_CSR_COMPxNONINSEL /*!< I/O2 (PA3 for COMP2, PD14 for COMP3, PE7 for COMP4, PB13 for COMP5,
162 PB11 for COMP6, PC1 for COMP7) connected to comparator non inverting input */
163
164 #define IS_COMP_NONINVERTING_INPUT(INPUT) (((INPUT) == COMP_NonInvertingInput_IO1) || \
165 ((INPUT) == COMP_NonInvertingInput_IO2))
166 /**
167 * @}
168 */
169
170 /** @defgroup COMP_Output
171 * @{
172 */
173
174 #define COMP_Output_None ((uint32_t)0x00000000) /*!< COMP output isn't connected to other peripherals */
175
176 /* Output Redirection common for all comparators COMP1...COMP7 */
177 #define COMP_Output_TIM1BKIN COMP_CSR_COMPxOUTSEL_0 /*!< COMP output connected to TIM1 Break Input (BKIN) */
178 #define COMP_Output_TIM1BKIN2 ((uint32_t)0x00000800) /*!< COMP output connected to TIM1 Break Input 2 (BKIN2) */
179 #define COMP_Output_TIM8BKIN ((uint32_t)0x00000C00) /*!< COMP output connected to TIM8 Break Input (BKIN) */
180 #define COMP_Output_TIM8BKIN2 ((uint32_t)0x00001000) /*!< COMP output connected to TIM8 Break Input 2 (BKIN2) */
181 #define COMP_Output_TIM1BKIN2_TIM8BKIN2 ((uint32_t)0x00001400) /*!< COMP output connected to TIM1 Break Input 2 and TIM8 Break Input 2 */
182
183 /* Output Redirection common for COMP1 and COMP2 */
184 #define COMP_Output_TIM1OCREFCLR ((uint32_t)0x00001800) /*!< COMP output connected to TIM1 OCREF Clear */
185 #define COMP_Output_TIM1IC1 ((uint32_t)0x00001C00) /*!< COMP output connected to TIM1 Input Capture 1 */
186 #define COMP_Output_TIM2IC4 ((uint32_t)0x00002000) /*!< COMP output connected to TIM2 Input Capture 4 */
187 #define COMP_Output_TIM2OCREFCLR ((uint32_t)0x00002400) /*!< COMP output connected to TIM2 OCREF Clear */
188 #define COMP_Output_TIM3IC1 ((uint32_t)0x00002800) /*!< COMP output connected to TIM3 Input Capture 1 */
189 #define COMP_Output_TIM3OCREFCLR ((uint32_t)0x00002C00) /*!< COMP output connected to TIM3 OCREF Clear */
190
191 /* Output Redirection specific to COMP2 */
192 #define COMP_Output_HRTIM1_FLT6 ((uint32_t)0x00003000) /*!< COMP output connected to HRTIM1 FLT6 */
193 #define COMP_Output_HRTIM1_EE1_2 ((uint32_t)0x00003400) /*!< COMP output connected to HRTIM1 EE1_2*/
194 #define COMP_Output_HRTIM1_EE6_2 ((uint32_t)0x00003800) /*!< COMP output connected to HRTIM1 EE6_2 */
195
196 /* Output Redirection specific to COMP3 */
197 #define COMP_Output_TIM4IC1 ((uint32_t)0x00001C00) /*!< COMP output connected to TIM4 Input Capture 1 */
198 #define COMP_Output_TIM3IC2 ((uint32_t)0x00002000) /*!< COMP output connected to TIM3 Input Capture 2 */
199 #define COMP_Output_TIM15IC1 ((uint32_t)0x00002800) /*!< COMP output connected to TIM15 Input Capture 1 */
200 #define COMP_Output_TIM15BKIN ((uint32_t)0x00002C00) /*!< COMP output connected to TIM15 Break Input (BKIN) */
201
202 /* Output Redirection specific to COMP4 */
203 #define COMP_Output_TIM3IC3 ((uint32_t)0x00001800) /*!< COMP output connected to TIM3 Input Capture 3 */
204 #define COMP_Output_TIM8OCREFCLR ((uint32_t)0x00001C00) /*!< COMP output connected to TIM8 OCREF Clear */
205 #define COMP_Output_TIM15IC2 ((uint32_t)0x00002000) /*!< COMP output connected to TIM15 Input Capture 2 */
206 #define COMP_Output_TIM4IC2 ((uint32_t)0x00002400) /*!< COMP output connected to TIM4 Input Capture 2 */
207 #define COMP_Output_TIM15OCREFCLR ((uint32_t)0x00002800) /*!< COMP output connected to TIM15 OCREF Clear */
208
209 #define COMP_Output_HRTIM1_FLT7 ((uint32_t)0x00003000) /*!< COMP output connected to HRTIM1 FLT7 */
210 #define COMP_Output_HRTIM1_EE2_2 ((uint32_t)0x00003400) /*!< COMP output connected to HRTIM1 EE2_2*/
211 #define COMP_Output_HRTIM1_EE7_2 ((uint32_t)0x00003800) /*!< COMP output connected to HRTIM1 EE7_2 */
212
213 /* Output Redirection specific to COMP5 */
214 #define COMP_Output_TIM2IC1 ((uint32_t)0x00001800) /*!< COMP output connected to TIM2 Input Capture 1 */
215 #define COMP_Output_TIM17IC1 ((uint32_t)0x00002000) /*!< COMP output connected to TIM17 Input Capture 1 */
216 #define COMP_Output_TIM4IC3 ((uint32_t)0x00002400) /*!< COMP output connected to TIM4 Input Capture 3 */
217 #define COMP_Output_TIM16BKIN ((uint32_t)0x00002800) /*!< COMP output connected to TIM16 Break Input (BKIN) */
218
219 /* Output Redirection specific to COMP6 */
220 #define COMP_Output_TIM2IC2 ((uint32_t)0x00001800) /*!< COMP output connected to TIM2 Input Capture 2 */
221 #define COMP_Output_COMP6TIM2OCREFCLR ((uint32_t)0x00002000) /*!< COMP output connected to TIM2 OCREF Clear */
222 #define COMP_Output_TIM16OCREFCLR ((uint32_t)0x00002400) /*!< COMP output connected to TIM16 OCREF Clear */
223 #define COMP_Output_TIM16IC1 ((uint32_t)0x00002800) /*!< COMP output connected to TIM16 Input Capture 1 */
224 #define COMP_Output_TIM4IC4 ((uint32_t)0x00002C00) /*!< COMP output connected to TIM4 Input Capture 4 */
225
226 #define COMP_Output_HRTIM1_FLT8 ((uint32_t)0x00003000) /*!< COMP output connected to HRTIM1 FLT8 */
227 #define COMP_Output_HRTIM1_EE3_2 ((uint32_t)0x00003400) /*!< COMP output connected to HRTIM1 EE3_2*/
228 #define COMP_Output_HRTIM1_EE8_2 ((uint32_t)0x00003800) /*!< COMP output connected to HRTIM1 EE8_2 */
229
230 /* Output Redirection specific to COMP7 */
231 #define COMP_Output_TIM2IC3 ((uint32_t)0x00002000) /*!< COMP output connected to TIM2 Input Capture 3 */
232 #define COMP_Output_TIM1IC2 ((uint32_t)0x00002400) /*!< COMP output connected to TIM1 Input Capture 2 */
233 #define COMP_Output_TIM17OCREFCLR ((uint32_t)0x00002800) /*!< COMP output connected to TIM16 OCREF Clear */
234 #define COMP_Output_TIM17BKIN ((uint32_t)0x00002C00) /*!< COMP output connected to TIM16 Break Input (BKIN) */
235
236 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_Output_None) || \
237 ((OUTPUT) == COMP_Output_TIM1BKIN) || \
238 ((OUTPUT) == COMP_Output_TIM1IC1) || \
239 ((OUTPUT) == COMP_Output_TIM1OCREFCLR) || \
240 ((OUTPUT) == COMP_Output_TIM2IC4) || \
241 ((OUTPUT) == COMP_Output_TIM2OCREFCLR) || \
242 ((OUTPUT) == COMP_Output_COMP6TIM2OCREFCLR) || \
243 ((OUTPUT) == COMP_Output_TIM3IC1) || \
244 ((OUTPUT) == COMP_Output_TIM3OCREFCLR) || \
245 ((OUTPUT) == COMP_Output_TIM8BKIN) || \
246 ((OUTPUT) == COMP_Output_TIM1BKIN2) || \
247 ((OUTPUT) == COMP_Output_TIM8BKIN2) || \
248 ((OUTPUT) == COMP_Output_TIM2OCREFCLR) || \
249 ((OUTPUT) == COMP_Output_TIM1BKIN2_TIM8BKIN2) || \
250 ((OUTPUT) == COMP_Output_TIM3IC2) || \
251 ((OUTPUT) == COMP_Output_TIM4IC1) || \
252 ((OUTPUT) == COMP_Output_TIM15IC1) || \
253 ((OUTPUT) == COMP_Output_TIM15BKIN) || \
254 ((OUTPUT) == COMP_Output_TIM8OCREFCLR) || \
255 ((OUTPUT) == COMP_Output_TIM3IC3) || \
256 ((OUTPUT) == COMP_Output_TIM4IC1) || \
257 ((OUTPUT) == COMP_Output_TIM15IC1) || \
258 ((OUTPUT) == COMP_Output_TIM2IC1) || \
259 ((OUTPUT) == COMP_Output_TIM4IC3) || \
260 ((OUTPUT) == COMP_Output_TIM16BKIN) || \
261 ((OUTPUT) == COMP_Output_TIM17IC1) || \
262 ((OUTPUT) == COMP_Output_TIM2IC2) || \
263 ((OUTPUT) == COMP_Output_TIM16IC1) || \
264 ((OUTPUT) == COMP_Output_TIM4IC4) || \
265 ((OUTPUT) == COMP_Output_TIM16OCREFCLR) || \
266 ((OUTPUT) == COMP_Output_TIM2IC3) || \
267 ((OUTPUT) == COMP_Output_TIM1IC2) || \
268 ((OUTPUT) == COMP_Output_TIM17BKIN) || \
269 ((OUTPUT) == COMP_Output_TIM17OCREFCLR) || \
270 ((OUTPUT) == COMP_Output_HRTIM1_FLT6) || \
271 ((OUTPUT) == COMP_Output_HRTIM1_EE1_2) || \
272 ((OUTPUT) == COMP_Output_HRTIM1_EE6_2) || \
273 ((OUTPUT) == COMP_Output_HRTIM1_FLT7) || \
274 ((OUTPUT) == COMP_Output_HRTIM1_EE2_2) || \
275 ((OUTPUT) == COMP_Output_HRTIM1_EE7_2) || \
276 ((OUTPUT) == COMP_Output_HRTIM1_FLT8) || \
277 ((OUTPUT) == COMP_Output_HRTIM1_EE3_2) || \
278 ((OUTPUT) == COMP_Output_HRTIM1_EE8_2))
279
280 /**
281 * @}
282 */
283
284 /** @defgroup COMP_BlankingSrce
285 * @{
286 */
287
288 /* No blanking source can be selected for all comparators */
289 #define COMP_BlankingSrce_None ((uint32_t)0x00000000) /*!< No blanking source */
290
291 /* Blanking source common for COMP1, COMP2, COMP3 and COMP7 */
292 #define COMP_BlankingSrce_TIM1OC5 COMP_CSR_COMPxBLANKING_0 /*!< TIM1 OC5 selected as blanking source for compartor */
293
294 /* Blanking source common for COMP1 and COMP2 */
295 #define COMP_BlankingSrce_TIM2OC3 COMP_CSR_COMPxBLANKING_1 /*!< TIM2 OC5 selected as blanking source for compartor */
296
297 /* Blanking source common for COMP1, COMP2 and COMP5 */
298 #define COMP_BlankingSrce_TIM3OC3 ((uint32_t)0x000C0000) /*!< TIM2 OC3 selected as blanking source for compartor */
299
300 /* Blanking source common for COMP3 and COMP6 */
301 #define COMP_BlankingSrce_TIM2OC4 ((uint32_t)0x000C0000) /*!< TIM2 OC4 selected as blanking source for compartor */
302
303 /* Blanking source common for COMP4, COMP5, COMP6 and COMP7 */
304 #define COMP_BlankingSrce_TIM8OC5 COMP_CSR_COMPxBLANKING_1 /*!< TIM8 OC5 selected as blanking source for compartor */
305
306 /* Blanking source for COMP4 */
307 #define COMP_BlankingSrce_TIM3OC4 COMP_CSR_COMPxBLANKING_0 /*!< TIM3 OC4 selected as blanking source for compartor */
308 #define COMP_BlankingSrce_TIM15OC1 ((uint32_t)0x000C0000) /*!< TIM15 OC1 selected as blanking source for compartor */
309
310 /* Blanking source common for COMP6 and COMP7 */
311 #define COMP_BlankingSrce_TIM15OC2 COMP_CSR_COMPxBLANKING_2 /*!< TIM15 OC2 selected as blanking source for compartor */
312
313 #define IS_COMP_BLANKING_SOURCE(SOURCE) (((SOURCE) == COMP_BlankingSrce_None) || \
314 ((SOURCE) == COMP_BlankingSrce_TIM1OC5) || \
315 ((SOURCE) == COMP_BlankingSrce_TIM2OC3) || \
316 ((SOURCE) == COMP_BlankingSrce_TIM3OC3) || \
317 ((SOURCE) == COMP_BlankingSrce_TIM2OC4) || \
318 ((SOURCE) == COMP_BlankingSrce_TIM8OC5) || \
319 ((SOURCE) == COMP_BlankingSrce_TIM3OC4) || \
320 ((SOURCE) == COMP_BlankingSrce_TIM15OC1) || \
321 ((SOURCE) == COMP_BlankingSrce_TIM15OC2))
322 /**
323 * @}
324 */
325
326 /** @defgroup COMP_OutputPoloarity
327 * @{
328 */
329 #define COMP_OutputPol_NonInverted ((uint32_t)0x00000000) /*!< COMP output on GPIO isn't inverted */
330 #define COMP_OutputPol_Inverted COMP_CSR_COMPxPOL /*!< COMP output on GPIO is inverted */
331
332 #define IS_COMP_OUTPUT_POL(POL) (((POL) == COMP_OutputPol_NonInverted) || \
333 ((POL) == COMP_OutputPol_Inverted))
334
335 /**
336 * @}
337 */
338
339 /** @defgroup COMP_Hysteresis
340 * @{
341 */
342 /* Please refer to the electrical characteristics in the device datasheet for
343 the hysteresis level */
344 #define COMP_Hysteresis_No 0x00000000 /*!< No hysteresis */
345 #define COMP_Hysteresis_Low COMP_CSR_COMPxHYST_0 /*!< Hysteresis level low */
346 #define COMP_Hysteresis_Medium COMP_CSR_COMPxHYST_1 /*!< Hysteresis level medium */
347 #define COMP_Hysteresis_High COMP_CSR_COMPxHYST /*!< Hysteresis level high */
348
349 #define IS_COMP_HYSTERESIS(HYSTERESIS) (((HYSTERESIS) == COMP_Hysteresis_No) || \
350 ((HYSTERESIS) == COMP_Hysteresis_Low) || \
351 ((HYSTERESIS) == COMP_Hysteresis_Medium) || \
352 ((HYSTERESIS) == COMP_Hysteresis_High))
353 /**
354 * @}
355 */
356
357 /** @defgroup COMP_Mode
358 * @{
359 */
360 /* Please refer to the electrical characteristics in the device datasheet for
361 the power consumption values */
362 #define COMP_Mode_HighSpeed 0x00000000 /*!< High Speed */
363 #define COMP_Mode_MediumSpeed COMP_CSR_COMPxMODE_0 /*!< Medium Speed */
364 #define COMP_Mode_LowPower COMP_CSR_COMPxMODE_1 /*!< Low power mode */
365 #define COMP_Mode_UltraLowPower COMP_CSR_COMPxMODE /*!< Ultra-low power mode */
366
367 #define IS_COMP_MODE(MODE) (((MODE) == COMP_Mode_UltraLowPower) || \
368 ((MODE) == COMP_Mode_LowPower) || \
369 ((MODE) == COMP_Mode_MediumSpeed) || \
370 ((MODE) == COMP_Mode_HighSpeed))
371 /**
372 * @}
373 */
374
375 /** @defgroup COMP_OutputLevel
376 * @{
377 */
378 /* When output polarity is not inverted, comparator output is high when
379 the non-inverting input is at a higher voltage than the inverting input */
380 #define COMP_OutputLevel_High COMP_CSR_COMPxOUT
381 /* When output polarity is not inverted, comparator output is low when
382 the non-inverting input is at a lower voltage than the inverting input*/
383 #define COMP_OutputLevel_Low ((uint32_t)0x00000000)
384
385 /**
386 * @}
387 */
388
389 /** @defgroup COMP_WindowMode
390 * @{
391 */
392 #define IS_COMP_WINDOW(WINDOW) (((WINDOW) == COMP_Selection_COMP2) || \
393 ((WINDOW) == COMP_Selection_COMP4) || \
394 ((WINDOW) == COMP_Selection_COMP6))
395 /**
396 * @}
397 */
398
399 /**
400 * @}
401 */
402
403 /* Exported macro ------------------------------------------------------------*/
404 /* Exported functions ------------------------------------------------------- */
405
406 /* Function used to set the COMP configuration to the default reset state ****/
407 void COMP_DeInit(uint32_t COMP_Selection);
408
409 /* Initialization and Configuration functions *********************************/
410 void COMP_Init(uint32_t COMP_Selection, COMP_InitTypeDef* COMP_InitStruct);
411 void COMP_StructInit(COMP_InitTypeDef* COMP_InitStruct);
412 void COMP_Cmd(uint32_t COMP_Selection, FunctionalState NewState);
413 void COMP_SwitchCmd(uint32_t COMP_Selection, FunctionalState NewState);
414 uint32_t COMP_GetOutputLevel(uint32_t COMP_Selection);
415
416 /* Window mode control function ***********************************************/
417 void COMP_WindowCmd(uint32_t COMP_Selection, FunctionalState NewState);
418
419 /* COMP configuration locking function ****************************************/
420 void COMP_LockConfig(uint32_t COMP_Selection);
421
422 #ifdef __cplusplus
423 }
424 #endif
425
426 #endif /*__STM32F30x_COMP_H */
427
428 /**
429 * @}
430 */
431
432 /**
433 * @}
434 */
435
436 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Imprint / Impressum