]> git.sur5r.net Git - freertos/blob - Demo/_Cortex_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_tim.h
First phase of changing the directory that starts Cortex, with one that starts CORTEX.
[freertos] / Demo / _Cortex_STM32L152_IAR / system_and_ST_code / STM32L1xx_StdPeriph_Driver / inc / stm32l1xx_tim.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32l1xx_tim.h\r
4   * @author  MCD Application Team\r
5   * @version V1.0.0RC1\r
6   * @date    07/02/2010\r
7   * @brief   This file contains all the functions prototypes for the TIM firmware \r
8   *          library.\r
9   ******************************************************************************\r
10   * @copy\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * <h2><center>&copy; COPYRIGHT 2010 STMicroelectronics</center></h2>\r
20   */ \r
21 \r
22 /* Define to prevent recursive inclusion -------------------------------------*/\r
23 #ifndef __STM32L1xx_TIM_H\r
24 #define __STM32L1xx_TIM_H\r
25 \r
26 #ifdef __cplusplus\r
27  extern "C" {\r
28 #endif\r
29 \r
30 /* Includes ------------------------------------------------------------------*/\r
31 #include "stm32l1xx.h"\r
32 \r
33 /** @addtogroup STM32L1xx_StdPeriph_Driver\r
34   * @{\r
35   */\r
36 \r
37 /** @addtogroup TIM\r
38   * @{\r
39   */ \r
40 \r
41 /** @defgroup TIM_Exported_Types\r
42   * @{\r
43   */ \r
44 \r
45 /** \r
46   * @brief  TIM Time Base Init structure definition\r
47   * @note   This sturcture is used with all TIMx except for TIM6 and TIM7.    \r
48   */\r
49 \r
50 typedef struct\r
51 {\r
52   uint16_t TIM_Prescaler;         /*!< Specifies the prescaler value used to divide the TIM clock.\r
53                                        This parameter can be a number between 0x0000 and 0xFFFF */\r
54 \r
55   uint16_t TIM_CounterMode;       /*!< Specifies the counter mode.\r
56                                        This parameter can be a value of @ref TIM_Counter_Mode */\r
57 \r
58   uint16_t TIM_Period;            /*!< Specifies the period value to be loaded into the active\r
59                                        Auto-Reload Register at the next update event.\r
60                                        This parameter must be a number between 0x0000 and 0xFFFF.  */ \r
61 \r
62   uint16_t TIM_ClockDivision;     /*!< Specifies the clock division.\r
63                                       This parameter can be a value of @ref TIM_Clock_Division_CKD */\r
64 \r
65 } TIM_TimeBaseInitTypeDef;       \r
66 \r
67 /** \r
68   * @brief  TIM Output Compare Init structure definition  \r
69   */\r
70 \r
71 typedef struct\r
72 {\r
73   uint16_t TIM_OCMode;        /*!< Specifies the TIM mode.\r
74                                    This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */\r
75 \r
76   uint16_t TIM_OutputState;   /*!< Specifies the TIM Output Compare state.\r
77                                    This parameter can be a value of @ref TIM_Output_Compare_state */\r
78 \r
79   uint16_t TIM_Pulse;         /*!< Specifies the pulse value to be loaded into the Capture Compare Register. \r
80                                    This parameter can be a number between 0x0000 and 0xFFFF */\r
81 \r
82   uint16_t TIM_OCPolarity;    /*!< Specifies the output polarity.\r
83                                    This parameter can be a value of @ref TIM_Output_Compare_Polarity */\r
84 \r
85 } TIM_OCInitTypeDef;\r
86 \r
87 /** \r
88   * @brief  TIM Input Capture Init structure definition  \r
89   */\r
90 \r
91 typedef struct\r
92 {\r
93 \r
94   uint16_t TIM_Channel;      /*!< Specifies the TIM channel.\r
95                                   This parameter can be a value of @ref TIM_Channel */\r
96 \r
97   uint16_t TIM_ICPolarity;   /*!< Specifies the active edge of the input signal.\r
98                                   This parameter can be a value of @ref TIM_Input_Capture_Polarity */\r
99 \r
100   uint16_t TIM_ICSelection;  /*!< Specifies the input.\r
101                                   This parameter can be a value of @ref TIM_Input_Capture_Selection */\r
102 \r
103   uint16_t TIM_ICPrescaler;  /*!< Specifies the Input Capture Prescaler.\r
104                                   This parameter can be a value of @ref TIM_Input_Capture_Prescaler */\r
105 \r
106   uint16_t TIM_ICFilter;     /*!< Specifies the input capture filter.\r
107                                   This parameter can be a number between 0x0 and 0xF */\r
108 } TIM_ICInitTypeDef;\r
109 \r
110 /**\r
111   * @}\r
112   */ \r
113 \r
114   \r
115 /** @defgroup TIM_Exported_constants \r
116   * @{\r
117   */\r
118 \r
119 #define IS_TIM_ALL_PERIPH(PERIPH) (((PERIPH) == TIM2) || \\r
120                                    ((PERIPH) == TIM3) || \\r
121                                    ((PERIPH) == TIM4) || \\r
122                                    ((PERIPH) == TIM6) || \\r
123                                    ((PERIPH) == TIM7) || \\r
124                                    ((PERIPH) == TIM9) || \\r
125                                    ((PERIPH) == TIM10) || \\r
126                                    ((PERIPH) == TIM11))\r
127 \r
128 \r
129 #define IS_TIM_23491011_PERIPH(PERIPH) (((PERIPH) == TIM2) || \\r
130                                         ((PERIPH) == TIM3) || \\r
131                                         ((PERIPH) == TIM4) || \\r
132                                         ((PERIPH) == TIM9) || \\r
133                                         ((PERIPH) == TIM10) || \\r
134                                         ((PERIPH) == TIM11))\r
135                                         \r
136 #define IS_TIM_234_PERIPH(PERIPH) (((PERIPH) == TIM2) || \\r
137                                    ((PERIPH) == TIM3) || \\r
138                                    ((PERIPH) == TIM4))\r
139                                    \r
140 #define IS_TIM_2349_PERIPH(PERIPH) (((PERIPH) == TIM2) || \\r
141                                    ((PERIPH) == TIM3) || \\r
142                                    ((PERIPH) == TIM4) ||\\r
143                                    ((PERIPH) == TIM9))\r
144 \r
145 #define IS_TIM_234679_PERIPH(PERIPH) (((PERIPH) == TIM2) || \\r
146                                       ((PERIPH) == TIM3) || \\r
147                                       ((PERIPH) == TIM4) ||\\r
148                                       ((PERIPH) == TIM6) || \\r
149                                       ((PERIPH) == TIM7) ||\\r
150                                       ((PERIPH) == TIM9))\r
151 \r
152 #define IS_TIM_23467_PERIPH(PERIPH) (((PERIPH) == TIM2) || \\r
153                                      ((PERIPH) == TIM3) || \\r
154                                      ((PERIPH) == TIM4) ||\\r
155                                      ((PERIPH) == TIM6) || \\r
156                                      ((PERIPH) == TIM7))\r
157 \r
158 #define IS_TIM_91011_PERIPH(PERIPH) (((PERIPH) == TIM9) || \\r
159                                     ((PERIPH) == TIM10) ||\\r
160                                     ((PERIPH) == TIM11))\r
161 \r
162 \r
163 \r
164 /** @defgroup TIM_Output_Compare_and_PWM_modes \r
165   * @{\r
166   */\r
167 \r
168 #define TIM_OCMode_Timing                  ((uint16_t)0x0000)\r
169 #define TIM_OCMode_Active                  ((uint16_t)0x0010)\r
170 #define TIM_OCMode_Inactive                ((uint16_t)0x0020)\r
171 #define TIM_OCMode_Toggle                  ((uint16_t)0x0030)\r
172 #define TIM_OCMode_PWM1                    ((uint16_t)0x0060)\r
173 #define TIM_OCMode_PWM2                    ((uint16_t)0x0070)\r
174 #define IS_TIM_OC_MODE(MODE) (((MODE) == TIM_OCMode_Timing) || \\r
175                               ((MODE) == TIM_OCMode_Active) || \\r
176                               ((MODE) == TIM_OCMode_Inactive) || \\r
177                               ((MODE) == TIM_OCMode_Toggle)|| \\r
178                               ((MODE) == TIM_OCMode_PWM1) || \\r
179                               ((MODE) == TIM_OCMode_PWM2))\r
180 #define IS_TIM_OCM(MODE) (((MODE) == TIM_OCMode_Timing) || \\r
181                           ((MODE) == TIM_OCMode_Active) || \\r
182                           ((MODE) == TIM_OCMode_Inactive) || \\r
183                           ((MODE) == TIM_OCMode_Toggle)|| \\r
184                           ((MODE) == TIM_OCMode_PWM1) || \\r
185                           ((MODE) == TIM_OCMode_PWM2) ||        \\r
186                           ((MODE) == TIM_ForcedAction_Active) || \\r
187                           ((MODE) == TIM_ForcedAction_InActive))\r
188 /**\r
189   * @}\r
190   */\r
191 \r
192 /** @defgroup TIM_One_Pulse_Mode \r
193   * @{\r
194   */\r
195 \r
196 #define TIM_OPMode_Single                  ((uint16_t)0x0008)\r
197 #define TIM_OPMode_Repetitive              ((uint16_t)0x0000)\r
198 #define IS_TIM_OPM_MODE(MODE) (((MODE) == TIM_OPMode_Single) || \\r
199                                ((MODE) == TIM_OPMode_Repetitive))\r
200 /**\r
201   * @}\r
202   */ \r
203 \r
204 /** @defgroup TIM_Channel \r
205   * @{\r
206   */\r
207 \r
208 #define TIM_Channel_1                      ((uint16_t)0x0000)\r
209 #define TIM_Channel_2                      ((uint16_t)0x0004)\r
210 #define TIM_Channel_3                      ((uint16_t)0x0008)\r
211 #define TIM_Channel_4                      ((uint16_t)0x000C)\r
212 \r
213 #define IS_TIM_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \\r
214                                  ((CHANNEL) == TIM_Channel_2) || \\r
215                                  ((CHANNEL) == TIM_Channel_3) || \\r
216                                  ((CHANNEL) == TIM_Channel_4))\r
217                                  \r
218 #define IS_TIM_PWMI_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \\r
219                                       ((CHANNEL) == TIM_Channel_2))\r
220 \r
221 /**\r
222   * @}\r
223   */ \r
224 \r
225 /** @defgroup TIM_Clock_Division_CKD \r
226   * @{\r
227   */\r
228 \r
229 #define TIM_CKD_DIV1                       ((uint16_t)0x0000)\r
230 #define TIM_CKD_DIV2                       ((uint16_t)0x0100)\r
231 #define TIM_CKD_DIV4                       ((uint16_t)0x0200)\r
232 #define IS_TIM_CKD_DIV(DIV) (((DIV) == TIM_CKD_DIV1) || \\r
233                              ((DIV) == TIM_CKD_DIV2) || \\r
234                              ((DIV) == TIM_CKD_DIV4))\r
235 /**\r
236   * @}\r
237   */\r
238 \r
239 /** @defgroup TIM_Counter_Mode \r
240   * @{\r
241   */\r
242 \r
243 #define TIM_CounterMode_Up                 ((uint16_t)0x0000)\r
244 #define TIM_CounterMode_Down               ((uint16_t)0x0010)\r
245 #define TIM_CounterMode_CenterAligned1     ((uint16_t)0x0020)\r
246 #define TIM_CounterMode_CenterAligned2     ((uint16_t)0x0040)\r
247 #define TIM_CounterMode_CenterAligned3     ((uint16_t)0x0060)\r
248 #define IS_TIM_COUNTER_MODE(MODE) (((MODE) == TIM_CounterMode_Up) ||  \\r
249                                    ((MODE) == TIM_CounterMode_Down) || \\r
250                                    ((MODE) == TIM_CounterMode_CenterAligned1) || \\r
251                                    ((MODE) == TIM_CounterMode_CenterAligned2) || \\r
252                                    ((MODE) == TIM_CounterMode_CenterAligned3))\r
253 /**\r
254   * @}\r
255   */ \r
256 \r
257 /** @defgroup TIM_Output_Compare_Polarity \r
258   * @{\r
259   */\r
260 \r
261 #define TIM_OCPolarity_High                ((uint16_t)0x0000)\r
262 #define TIM_OCPolarity_Low                 ((uint16_t)0x0002)\r
263 #define IS_TIM_OC_POLARITY(POLARITY) (((POLARITY) == TIM_OCPolarity_High) || \\r
264                                       ((POLARITY) == TIM_OCPolarity_Low))\r
265 /**\r
266   * @}\r
267   */\r
268 \r
269 \r
270 /** @defgroup TIM_Output_Compare_state\r
271   * @{\r
272   */\r
273 \r
274 #define TIM_OutputState_Disable            ((uint16_t)0x0000)\r
275 #define TIM_OutputState_Enable             ((uint16_t)0x0001)\r
276 #define IS_TIM_OUTPUT_STATE(STATE) (((STATE) == TIM_OutputState_Disable) || \\r
277                                     ((STATE) == TIM_OutputState_Enable))\r
278 /**\r
279   * @}\r
280   */ \r
281 \r
282 \r
283 /** @defgroup TIM_Capture_Compare_state \r
284   * @{\r
285   */\r
286 \r
287 #define TIM_CCx_Enable                      ((uint16_t)0x0001)\r
288 #define TIM_CCx_Disable                     ((uint16_t)0x0000)\r
289 #define IS_TIM_CCX(CCX) (((CCX) == TIM_CCx_Enable) || \\r
290                          ((CCX) == TIM_CCx_Disable))\r
291 /**\r
292   * @}\r
293   */ \r
294 \r
295 /** @defgroup TIM_Input_Capture_Polarity \r
296   * @{\r
297   */\r
298 \r
299 #define  TIM_ICPolarity_Rising             ((uint16_t)0x0000)\r
300 #define  TIM_ICPolarity_Falling            ((uint16_t)0x0002)\r
301 #define  TIM_ICPolarity_BothEdge           ((uint16_t)0x000A)\r
302 #define IS_TIM_IC_POLARITY(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising) || \\r
303                                       ((POLARITY) == TIM_ICPolarity_Falling)|| \\r
304                                       ((POLARITY) == TIM_ICPolarity_BothEdge))\r
305 /**\r
306   * @}\r
307   */ \r
308 \r
309 /** @defgroup TIM_Input_Capture_Selection \r
310   * @{\r
311   */\r
312 \r
313 #define TIM_ICSelection_DirectTI           ((uint16_t)0x0001) /*!< TIM Input 1, 2, 3 or 4 is selected to be \r
314                                                                    connected to IC1, IC2, IC3 or IC4, respectively */\r
315 #define TIM_ICSelection_IndirectTI         ((uint16_t)0x0002) /*!< TIM Input 1, 2, 3 or 4 is selected to be\r
316                                                                    connected to IC2, IC1, IC4 or IC3, respectively. */\r
317 #define TIM_ICSelection_TRC                ((uint16_t)0x0003) /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to TRC. */\r
318 #define IS_TIM_IC_SELECTION(SELECTION) (((SELECTION) == TIM_ICSelection_DirectTI) || \\r
319                                         ((SELECTION) == TIM_ICSelection_IndirectTI) || \\r
320                                         ((SELECTION) == TIM_ICSelection_TRC))\r
321 /**\r
322   * @}\r
323   */ \r
324 \r
325 /** @defgroup TIM_Input_Capture_Prescaler \r
326   * @{\r
327   */\r
328 \r
329 #define TIM_ICPSC_DIV1                     ((uint16_t)0x0000) /*!< Capture performed each time an edge is detected on the capture input. */\r
330 #define TIM_ICPSC_DIV2                     ((uint16_t)0x0004) /*!< Capture performed once every 2 events. */\r
331 #define TIM_ICPSC_DIV4                     ((uint16_t)0x0008) /*!< Capture performed once every 4 events. */\r
332 #define TIM_ICPSC_DIV8                     ((uint16_t)0x000C) /*!< Capture performed once every 8 events. */\r
333 #define IS_TIM_IC_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ICPSC_DIV1) || \\r
334                                         ((PRESCALER) == TIM_ICPSC_DIV2) || \\r
335                                         ((PRESCALER) == TIM_ICPSC_DIV4) || \\r
336                                         ((PRESCALER) == TIM_ICPSC_DIV8))\r
337 /**\r
338   * @}\r
339   */ \r
340 \r
341 /** @defgroup TIM_interrupt_sources \r
342   * @{\r
343   */\r
344 \r
345 #define TIM_IT_Update                      ((uint16_t)0x0001)\r
346 #define TIM_IT_CC1                         ((uint16_t)0x0002)\r
347 #define TIM_IT_CC2                         ((uint16_t)0x0004)\r
348 #define TIM_IT_CC3                         ((uint16_t)0x0008)\r
349 #define TIM_IT_CC4                         ((uint16_t)0x0010)\r
350 #define TIM_IT_Trigger                     ((uint16_t)0x0040)\r
351 #define IS_TIM_IT(IT) ((((IT) & (uint16_t)0xFFA0) == 0x0000) && ((IT) != 0x0000))\r
352 \r
353 #define IS_TIM_GET_IT(IT) (((IT) == TIM_IT_Update) || \\r
354                            ((IT) == TIM_IT_CC1) || \\r
355                            ((IT) == TIM_IT_CC2) || \\r
356                            ((IT) == TIM_IT_CC3) || \\r
357                            ((IT) == TIM_IT_CC4) || \\r
358                            ((IT) == TIM_IT_Trigger))\r
359 /**\r
360   * @}\r
361   */ \r
362 \r
363 /** @defgroup TIM_DMA_Base_address \r
364   * @{\r
365   */\r
366 \r
367 #define TIM_DMABase_CR1                    ((uint16_t)0x0000)\r
368 #define TIM_DMABase_CR2                    ((uint16_t)0x0001)\r
369 #define TIM_DMABase_SMCR                   ((uint16_t)0x0002)\r
370 #define TIM_DMABase_DIER                   ((uint16_t)0x0003)\r
371 #define TIM_DMABase_SR                     ((uint16_t)0x0004)\r
372 #define TIM_DMABase_EGR                    ((uint16_t)0x0005)\r
373 #define TIM_DMABase_CCMR1                  ((uint16_t)0x0006)\r
374 #define TIM_DMABase_CCMR2                  ((uint16_t)0x0007)\r
375 #define TIM_DMABase_CCER                   ((uint16_t)0x0008)\r
376 #define TIM_DMABase_CNT                    ((uint16_t)0x0009)\r
377 #define TIM_DMABase_PSC                    ((uint16_t)0x000A)\r
378 #define TIM_DMABase_ARR                    ((uint16_t)0x000B)\r
379 #define TIM_DMABase_RCR                    ((uint16_t)0x000C)\r
380 #define TIM_DMABase_CCR1                   ((uint16_t)0x000D)\r
381 #define TIM_DMABase_CCR2                   ((uint16_t)0x000E)\r
382 #define TIM_DMABase_CCR3                   ((uint16_t)0x000F)\r
383 #define TIM_DMABase_CCR4                   ((uint16_t)0x0010)\r
384 #define TIM_DMABase_DCR                    ((uint16_t)0x0012)\r
385 #define IS_TIM_DMA_BASE(BASE) (((BASE) == TIM_DMABase_CR1) || \\r
386                                ((BASE) == TIM_DMABase_CR2) || \\r
387                                ((BASE) == TIM_DMABase_SMCR) || \\r
388                                ((BASE) == TIM_DMABase_DIER) || \\r
389                                ((BASE) == TIM_DMABase_SR) || \\r
390                                ((BASE) == TIM_DMABase_EGR) || \\r
391                                ((BASE) == TIM_DMABase_CCMR1) || \\r
392                                ((BASE) == TIM_DMABase_CCMR2) || \\r
393                                ((BASE) == TIM_DMABase_CCER) || \\r
394                                ((BASE) == TIM_DMABase_CNT) || \\r
395                                ((BASE) == TIM_DMABase_PSC) || \\r
396                                ((BASE) == TIM_DMABase_ARR) || \\r
397                                ((BASE) == TIM_DMABase_CCR1) || \\r
398                                ((BASE) == TIM_DMABase_CCR2) || \\r
399                                ((BASE) == TIM_DMABase_CCR3) || \\r
400                                ((BASE) == TIM_DMABase_CCR4) || \\r
401                                ((BASE) == TIM_DMABase_DCR))                     \r
402 /**\r
403   * @}\r
404   */ \r
405 \r
406 /** @defgroup TIM_DMA_Burst_Length \r
407   * @{\r
408   */\r
409 \r
410 #define TIM_DMABurstLength_1Byte           ((uint16_t)0x0000)\r
411 #define TIM_DMABurstLength_2Bytes          ((uint16_t)0x0100)\r
412 #define TIM_DMABurstLength_3Bytes          ((uint16_t)0x0200)\r
413 #define TIM_DMABurstLength_4Bytes          ((uint16_t)0x0300)\r
414 #define TIM_DMABurstLength_5Bytes          ((uint16_t)0x0400)\r
415 #define TIM_DMABurstLength_6Bytes          ((uint16_t)0x0500)\r
416 #define TIM_DMABurstLength_7Bytes          ((uint16_t)0x0600)\r
417 #define TIM_DMABurstLength_8Bytes          ((uint16_t)0x0700)\r
418 #define TIM_DMABurstLength_9Bytes          ((uint16_t)0x0800)\r
419 #define TIM_DMABurstLength_10Bytes         ((uint16_t)0x0900)\r
420 #define TIM_DMABurstLength_11Bytes         ((uint16_t)0x0A00)\r
421 #define TIM_DMABurstLength_12Bytes         ((uint16_t)0x0B00)\r
422 #define TIM_DMABurstLength_13Bytes         ((uint16_t)0x0C00)\r
423 #define TIM_DMABurstLength_14Bytes         ((uint16_t)0x0D00)\r
424 #define TIM_DMABurstLength_15Bytes         ((uint16_t)0x0E00)\r
425 #define TIM_DMABurstLength_16Bytes         ((uint16_t)0x0F00)\r
426 #define TIM_DMABurstLength_17Bytes         ((uint16_t)0x1000)\r
427 #define TIM_DMABurstLength_18Bytes         ((uint16_t)0x1100)\r
428 #define IS_TIM_DMA_LENGTH(LENGTH) (((LENGTH) == TIM_DMABurstLength_1Byte) || \\r
429                                    ((LENGTH) == TIM_DMABurstLength_2Bytes) || \\r
430                                    ((LENGTH) == TIM_DMABurstLength_3Bytes) || \\r
431                                    ((LENGTH) == TIM_DMABurstLength_4Bytes) || \\r
432                                    ((LENGTH) == TIM_DMABurstLength_5Bytes) || \\r
433                                    ((LENGTH) == TIM_DMABurstLength_6Bytes) || \\r
434                                    ((LENGTH) == TIM_DMABurstLength_7Bytes) || \\r
435                                    ((LENGTH) == TIM_DMABurstLength_8Bytes) || \\r
436                                    ((LENGTH) == TIM_DMABurstLength_9Bytes) || \\r
437                                    ((LENGTH) == TIM_DMABurstLength_10Bytes) || \\r
438                                    ((LENGTH) == TIM_DMABurstLength_11Bytes) || \\r
439                                    ((LENGTH) == TIM_DMABurstLength_12Bytes) || \\r
440                                    ((LENGTH) == TIM_DMABurstLength_13Bytes) || \\r
441                                    ((LENGTH) == TIM_DMABurstLength_14Bytes) || \\r
442                                    ((LENGTH) == TIM_DMABurstLength_15Bytes) || \\r
443                                    ((LENGTH) == TIM_DMABurstLength_16Bytes) || \\r
444                                    ((LENGTH) == TIM_DMABurstLength_17Bytes) || \\r
445                                    ((LENGTH) == TIM_DMABurstLength_18Bytes))\r
446 /**\r
447   * @}\r
448   */ \r
449 \r
450 /** @defgroup TIM_DMA_sources \r
451   * @{\r
452   */\r
453 \r
454 #define TIM_DMA_Update                     ((uint16_t)0x0100)\r
455 #define TIM_DMA_CC1                        ((uint16_t)0x0200)\r
456 #define TIM_DMA_CC2                        ((uint16_t)0x0400)\r
457 #define TIM_DMA_CC3                        ((uint16_t)0x0800)\r
458 #define TIM_DMA_CC4                        ((uint16_t)0x1000)\r
459 #define TIM_DMA_Trigger                    ((uint16_t)0x4000)\r
460 #define IS_TIM_DMA_SOURCE(SOURCE) ((((SOURCE) & (uint16_t)0xA0FF) == 0x0000) && ((SOURCE) != 0x0000))\r
461 \r
462 /**\r
463   * @}\r
464   */ \r
465 \r
466 /** @defgroup TIM_External_Trigger_Prescaler \r
467   * @{\r
468   */\r
469 \r
470 #define TIM_ExtTRGPSC_OFF                  ((uint16_t)0x0000)\r
471 #define TIM_ExtTRGPSC_DIV2                 ((uint16_t)0x1000)\r
472 #define TIM_ExtTRGPSC_DIV4                 ((uint16_t)0x2000)\r
473 #define TIM_ExtTRGPSC_DIV8                 ((uint16_t)0x3000)\r
474 #define IS_TIM_EXT_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ExtTRGPSC_OFF) || \\r
475                                          ((PRESCALER) == TIM_ExtTRGPSC_DIV2) || \\r
476                                          ((PRESCALER) == TIM_ExtTRGPSC_DIV4) || \\r
477                                          ((PRESCALER) == TIM_ExtTRGPSC_DIV8))\r
478 /**\r
479   * @}\r
480   */ \r
481 \r
482 /** @defgroup TIM_Internal_Trigger_Selection \r
483   * @{\r
484   */\r
485 \r
486 #define TIM_TS_ITR0                        ((uint16_t)0x0000)\r
487 #define TIM_TS_ITR1                        ((uint16_t)0x0010)\r
488 #define TIM_TS_ITR2                        ((uint16_t)0x0020)\r
489 #define TIM_TS_ITR3                        ((uint16_t)0x0030)\r
490 #define TIM_TS_TI1F_ED                     ((uint16_t)0x0040)\r
491 #define TIM_TS_TI1FP1                      ((uint16_t)0x0050)\r
492 #define TIM_TS_TI2FP2                      ((uint16_t)0x0060)\r
493 #define TIM_TS_ETRF                        ((uint16_t)0x0070)\r
494 #define IS_TIM_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \\r
495                                              ((SELECTION) == TIM_TS_ITR1) || \\r
496                                              ((SELECTION) == TIM_TS_ITR2) || \\r
497                                              ((SELECTION) == TIM_TS_ITR3) || \\r
498                                              ((SELECTION) == TIM_TS_TI1F_ED) || \\r
499                                              ((SELECTION) == TIM_TS_TI1FP1) || \\r
500                                              ((SELECTION) == TIM_TS_TI2FP2) || \\r
501                                              ((SELECTION) == TIM_TS_ETRF))\r
502 #define IS_TIM_INTERNAL_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \\r
503                                                       ((SELECTION) == TIM_TS_ITR1) || \\r
504                                                       ((SELECTION) == TIM_TS_ITR2) || \\r
505                                                       ((SELECTION) == TIM_TS_ITR3))\r
506 /**\r
507   * @}\r
508   */ \r
509 \r
510 /** @defgroup TIM_TIx_External_Clock_Source \r
511   * @{\r
512   */\r
513 \r
514 #define TIM_TIxExternalCLK1Source_TI1      ((uint16_t)0x0050)\r
515 #define TIM_TIxExternalCLK1Source_TI2      ((uint16_t)0x0060)\r
516 #define TIM_TIxExternalCLK1Source_TI1ED    ((uint16_t)0x0040)\r
517 \r
518 /**\r
519   * @}\r
520   */ \r
521 \r
522 /** @defgroup TIM_External_Trigger_Polarity \r
523   * @{\r
524   */ \r
525 #define TIM_ExtTRGPolarity_Inverted        ((uint16_t)0x8000)\r
526 #define TIM_ExtTRGPolarity_NonInverted     ((uint16_t)0x0000)\r
527 #define IS_TIM_EXT_POLARITY(POLARITY) (((POLARITY) == TIM_ExtTRGPolarity_Inverted) || \\r
528                                        ((POLARITY) == TIM_ExtTRGPolarity_NonInverted))\r
529 /**\r
530   * @}\r
531   */\r
532 \r
533 /** @defgroup TIM_Prescaler_Reload_Mode \r
534   * @{\r
535   */\r
536 \r
537 #define TIM_PSCReloadMode_Update           ((uint16_t)0x0000)\r
538 #define TIM_PSCReloadMode_Immediate        ((uint16_t)0x0001)\r
539 #define IS_TIM_PRESCALER_RELOAD(RELOAD) (((RELOAD) == TIM_PSCReloadMode_Update) || \\r
540                                          ((RELOAD) == TIM_PSCReloadMode_Immediate))\r
541 /**\r
542   * @}\r
543   */ \r
544 \r
545 /** @defgroup TIM_Forced_Action \r
546   * @{\r
547   */\r
548 \r
549 #define TIM_ForcedAction_Active            ((uint16_t)0x0050)\r
550 #define TIM_ForcedAction_InActive          ((uint16_t)0x0040)\r
551 #define IS_TIM_FORCED_ACTION(ACTION) (((ACTION) == TIM_ForcedAction_Active) || \\r
552                                       ((ACTION) == TIM_ForcedAction_InActive))\r
553 /**\r
554   * @}\r
555   */ \r
556 \r
557 /** @defgroup TIM_Encoder_Mode \r
558   * @{\r
559   */\r
560 \r
561 #define TIM_EncoderMode_TI1                ((uint16_t)0x0001)\r
562 #define TIM_EncoderMode_TI2                ((uint16_t)0x0002)\r
563 #define TIM_EncoderMode_TI12               ((uint16_t)0x0003)\r
564 #define IS_TIM_ENCODER_MODE(MODE) (((MODE) == TIM_EncoderMode_TI1) || \\r
565                                    ((MODE) == TIM_EncoderMode_TI2) || \\r
566                                    ((MODE) == TIM_EncoderMode_TI12))\r
567 /**\r
568   * @}\r
569   */ \r
570 \r
571 \r
572 /** @defgroup TIM_Event_Source \r
573   * @{\r
574   */\r
575 \r
576 #define TIM_EventSource_Update             ((uint16_t)0x0001)\r
577 #define TIM_EventSource_CC1                ((uint16_t)0x0002)\r
578 #define TIM_EventSource_CC2                ((uint16_t)0x0004)\r
579 #define TIM_EventSource_CC3                ((uint16_t)0x0008)\r
580 #define TIM_EventSource_CC4                ((uint16_t)0x0010)\r
581 #define TIM_EventSource_Trigger            ((uint16_t)0x0040)\r
582 #define IS_TIM_EVENT_SOURCE(SOURCE) ((((SOURCE) & (uint16_t)0xFFA0) == 0x0000) && ((SOURCE) != 0x0000))                                          \r
583    \r
584 /**\r
585   * @}\r
586   */ \r
587 \r
588 /** @defgroup TIM_Update_Source \r
589   * @{\r
590   */\r
591 \r
592 #define TIM_UpdateSource_Global            ((uint16_t)0x0000) /*!< Source of update is the counter overflow/underflow\r
593                                                                    or the setting of UG bit, or an update generation\r
594                                                                    through the slave mode controller. */\r
595 #define TIM_UpdateSource_Regular           ((uint16_t)0x0001) /*!< Source of update is counter overflow/underflow. */\r
596 #define IS_TIM_UPDATE_SOURCE(SOURCE) (((SOURCE) == TIM_UpdateSource_Global) || \\r
597                                       ((SOURCE) == TIM_UpdateSource_Regular))\r
598 /**\r
599   * @}\r
600   */ \r
601 \r
602 /** @defgroup TIM_Ouput_Compare_Preload_State \r
603   * @{\r
604   */\r
605 \r
606 #define TIM_OCPreload_Enable               ((uint16_t)0x0008)\r
607 #define TIM_OCPreload_Disable              ((uint16_t)0x0000)\r
608 #define IS_TIM_OCPRELOAD_STATE(STATE) (((STATE) == TIM_OCPreload_Enable) || \\r
609                                        ((STATE) == TIM_OCPreload_Disable))\r
610 /**\r
611   * @}\r
612   */ \r
613 \r
614 /** @defgroup TIM_Ouput_Compare_Fast_State \r
615   * @{\r
616   */\r
617 \r
618 #define TIM_OCFast_Enable                  ((uint16_t)0x0004)\r
619 #define TIM_OCFast_Disable                 ((uint16_t)0x0000)\r
620 #define IS_TIM_OCFAST_STATE(STATE) (((STATE) == TIM_OCFast_Enable) || \\r
621                                     ((STATE) == TIM_OCFast_Disable))\r
622                                      \r
623 /**\r
624   * @}\r
625   */ \r
626 \r
627 /** @defgroup TIM_Ouput_Compare_Clear_State \r
628   * @{\r
629   */\r
630 \r
631 #define TIM_OCClear_Enable                 ((uint16_t)0x0080)\r
632 #define TIM_OCClear_Disable                ((uint16_t)0x0000)\r
633 #define IS_TIM_OCCLEAR_STATE(STATE) (((STATE) == TIM_OCClear_Enable) || \\r
634                                      ((STATE) == TIM_OCClear_Disable))\r
635 /**\r
636   * @}\r
637   */ \r
638 \r
639 /** @defgroup TIM_Trigger_Output_Source \r
640   * @{\r
641   */\r
642 \r
643 #define TIM_TRGOSource_Reset               ((uint16_t)0x0000)\r
644 #define TIM_TRGOSource_Enable              ((uint16_t)0x0010)\r
645 #define TIM_TRGOSource_Update              ((uint16_t)0x0020)\r
646 #define TIM_TRGOSource_OC1                 ((uint16_t)0x0030)\r
647 #define TIM_TRGOSource_OC1Ref              ((uint16_t)0x0040)\r
648 #define TIM_TRGOSource_OC2Ref              ((uint16_t)0x0050)\r
649 #define TIM_TRGOSource_OC3Ref              ((uint16_t)0x0060)\r
650 #define TIM_TRGOSource_OC4Ref              ((uint16_t)0x0070)\r
651 #define IS_TIM_TRGO_SOURCE(SOURCE) (((SOURCE) == TIM_TRGOSource_Reset) || \\r
652                                     ((SOURCE) == TIM_TRGOSource_Enable) || \\r
653                                     ((SOURCE) == TIM_TRGOSource_Update) || \\r
654                                     ((SOURCE) == TIM_TRGOSource_OC1) || \\r
655                                     ((SOURCE) == TIM_TRGOSource_OC1Ref) || \\r
656                                     ((SOURCE) == TIM_TRGOSource_OC2Ref) || \\r
657                                     ((SOURCE) == TIM_TRGOSource_OC3Ref) || \\r
658                                     ((SOURCE) == TIM_TRGOSource_OC4Ref))\r
659 /**\r
660   * @}\r
661   */ \r
662 \r
663 /** @defgroup TIM_Slave_Mode \r
664   * @{\r
665   */\r
666 \r
667 #define TIM_SlaveMode_Reset                ((uint16_t)0x0004)\r
668 #define TIM_SlaveMode_Gated                ((uint16_t)0x0005)\r
669 #define TIM_SlaveMode_Trigger              ((uint16_t)0x0006)\r
670 #define TIM_SlaveMode_External1            ((uint16_t)0x0007)\r
671 #define IS_TIM_SLAVE_MODE(MODE) (((MODE) == TIM_SlaveMode_Reset) || \\r
672                                  ((MODE) == TIM_SlaveMode_Gated) || \\r
673                                  ((MODE) == TIM_SlaveMode_Trigger) || \\r
674                                  ((MODE) == TIM_SlaveMode_External1))\r
675 /**\r
676   * @}\r
677   */ \r
678 \r
679 /** @defgroup TIM_Master_Slave_Mode \r
680   * @{\r
681   */\r
682 \r
683 #define TIM_MasterSlaveMode_Enable         ((uint16_t)0x0080)\r
684 #define TIM_MasterSlaveMode_Disable        ((uint16_t)0x0000)\r
685 #define IS_TIM_MSM_STATE(STATE) (((STATE) == TIM_MasterSlaveMode_Enable) || \\r
686                                  ((STATE) == TIM_MasterSlaveMode_Disable))\r
687 /**\r
688   * @}\r
689   */ \r
690   \r
691 /** @defgroup TIM_Flags \r
692   * @{\r
693   */\r
694 \r
695 #define TIM_FLAG_Update                    ((uint16_t)0x0001)\r
696 #define TIM_FLAG_CC1                       ((uint16_t)0x0002)\r
697 #define TIM_FLAG_CC2                       ((uint16_t)0x0004)\r
698 #define TIM_FLAG_CC3                       ((uint16_t)0x0008)\r
699 #define TIM_FLAG_CC4                       ((uint16_t)0x0010)\r
700 #define TIM_FLAG_Trigger                   ((uint16_t)0x0040)\r
701 #define TIM_FLAG_CC1OF                     ((uint16_t)0x0200)\r
702 #define TIM_FLAG_CC2OF                     ((uint16_t)0x0400)\r
703 #define TIM_FLAG_CC3OF                     ((uint16_t)0x0800)\r
704 #define TIM_FLAG_CC4OF                     ((uint16_t)0x1000)\r
705 #define IS_TIM_GET_FLAG(FLAG) (((FLAG) == TIM_FLAG_Update) || \\r
706                                ((FLAG) == TIM_FLAG_CC1) || \\r
707                                ((FLAG) == TIM_FLAG_CC2) || \\r
708                                ((FLAG) == TIM_FLAG_CC3) || \\r
709                                ((FLAG) == TIM_FLAG_CC4) || \\r
710                                ((FLAG) == TIM_FLAG_Trigger) || \\r
711                                ((FLAG) == TIM_FLAG_CC1OF) || \\r
712                                ((FLAG) == TIM_FLAG_CC2OF) || \\r
713                                ((FLAG) == TIM_FLAG_CC3OF) || \\r
714                                ((FLAG) == TIM_FLAG_CC4OF))\r
715 #define IS_TIM_CLEAR_FLAG(TIM_FLAG) ((((TIM_FLAG) & (uint16_t)0xE1A0) == 0x0000) && ((TIM_FLAG) != 0x0000)) \r
716 \r
717 /**\r
718   * @}\r
719   */ \r
720 \r
721 /** @defgroup TIM_Input_Capture_Filer_Value \r
722   * @{\r
723   */\r
724 \r
725 #define IS_TIM_IC_FILTER(ICFILTER) ((ICFILTER) <= 0xF) \r
726 /**\r
727   * @}\r
728   */ \r
729 \r
730 /** @defgroup TIM_External_Trigger_Filter \r
731   * @{\r
732   */\r
733 \r
734 #define IS_TIM_EXT_FILTER(EXTFILTER) ((EXTFILTER) <= 0xF)\r
735 /**\r
736   * @}\r
737   */\r
738 \r
739 /** @defgroup TIM_OCReferenceClear \r
740   * @{\r
741   */\r
742 #define TIM_OCReferenceClear_ETRF          ((uint16_t)0x0008)\r
743 #define TIM_OCReferenceClear_OCREFCLR      ((uint16_t)0x0000)\r
744 #define TIM_OCREFERENCECECLEAR_SOURCE(SOURCE) (((SOURCE) == TIM_OCReferenceClear_ETRF) || \\r
745                                               ((SOURCE) == TIM_OCReferenceClear_OCREFCLR)) \r
746 \r
747 /**\r
748   * @}\r
749   */\r
750 \r
751 /** @defgroup TIM_Remap \r
752   * @{\r
753   */\r
754 \r
755 #define TIM9_GPIO                          ((uint16_t)0x0000)\r
756 #define TIM9_LSE                           ((uint16_t)0x0001)\r
757 \r
758 #define TIM10_GPIO                         ((uint16_t)0x0000)\r
759 #define TIM10_LSI                          ((uint16_t)0x0001)\r
760 #define TIM10_LSE                          ((uint16_t)0x0002)\r
761 #define TIM10_RTC                          ((uint16_t)0x0003)\r
762 \r
763 #define TIM11_GPIO                         ((uint16_t)0x0000)\r
764 #define TIM11_MSI                          ((uint16_t)0x0001)\r
765 #define TIM11_HSE_RTC                      ((uint16_t)0x0002)\r
766 \r
767 #define IS_TIM_REMAP(TIM_REMAP)  (((TIM_REMAP) == TIM9_GPIO)||\\r
768                                   ((TIM_REMAP) == TIM9_LSE)||\\r
769                                   ((TIM_REMAP) == TIM10_GPIO)||\\r
770                                   ((TIM_REMAP) == TIM10_LSI)||\\r
771                                   ((TIM_REMAP) == TIM10_LSE)||\\r
772                                   ((TIM_REMAP) == TIM10_RTC)||\\r
773                                   ((TIM_REMAP) == TIM11_GPIO)||\\r
774                                   ((TIM_REMAP) == TIM11_MSI)||\\r
775                                   ((TIM_REMAP) == TIM11_HSE_RTC)) \r
776 \r
777 /**\r
778   * @}\r
779   */\r
780 \r
781 /**\r
782   * @}\r
783   */\r
784   \r
785 /** @defgroup TIM_Exported_Macros\r
786   * @{\r
787   */\r
788 \r
789 /**\r
790   * @}\r
791   */ \r
792 \r
793 /** @defgroup TIM_Exported_Functions\r
794   * @{\r
795   */\r
796 \r
797 void TIM_DeInit(TIM_TypeDef* TIMx);\r
798 void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);\r
799 void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);\r
800 void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);\r
801 void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);\r
802 void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);\r
803 void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);\r
804 void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);\r
805 void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);\r
806 void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct);\r
807 void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct);\r
808 void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);\r
809 void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);\r
810 void TIM_GenerateEvent(TIM_TypeDef* TIMx, uint16_t TIM_EventSource);\r
811 void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength);\r
812 void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState);\r
813 void TIM_InternalClockConfig(TIM_TypeDef* TIMx);\r
814 void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource);\r
815 void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource,\r
816                                 uint16_t TIM_ICPolarity, uint16_t ICFilter);\r
817 void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,\r
818                              uint16_t ExtTRGFilter);\r
819 void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, \r
820                              uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter);\r
821 void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,\r
822                    uint16_t ExtTRGFilter);\r
823 void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode);\r
824 void TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode);\r
825 void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource);\r
826 void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,\r
827                                 uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity);\r
828 void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);\r
829 void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);\r
830 void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);\r
831 void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);\r
832 void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);\r
833 void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState);\r
834 void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState);\r
835 void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState);\r
836 void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);\r
837 void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);\r
838 void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);\r
839 void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);\r
840 void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);\r
841 void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);\r
842 void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);\r
843 void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);\r
844 void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);\r
845 void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);\r
846 void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);\r
847 void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);\r
848 void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);\r
849 void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);\r
850 void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);\r
851 void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);\r
852 void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx);\r
853 void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode);\r
854 void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState);\r
855 void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource);\r
856 void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState);\r
857 void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode);\r
858 void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource);\r
859 void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode);\r
860 void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSlaveMode);\r
861 void TIM_SetCounter(TIM_TypeDef* TIMx, uint32_t Counter);\r
862 void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint32_t Autoreload);\r
863 void TIM_SetCompare1(TIM_TypeDef* TIMx, uint32_t Compare1);\r
864 void TIM_SetCompare2(TIM_TypeDef* TIMx, uint32_t Compare2);\r
865 void TIM_SetCompare3(TIM_TypeDef* TIMx, uint32_t Compare3);\r
866 void TIM_SetCompare4(TIM_TypeDef* TIMx, uint32_t Compare4);\r
867 void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);\r
868 void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);\r
869 void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);\r
870 void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);\r
871 void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD);\r
872 uint32_t TIM_GetCapture1(TIM_TypeDef* TIMx);\r
873 uint32_t TIM_GetCapture2(TIM_TypeDef* TIMx);\r
874 uint32_t TIM_GetCapture3(TIM_TypeDef* TIMx);\r
875 uint32_t TIM_GetCapture4(TIM_TypeDef* TIMx);\r
876 uint32_t TIM_GetCounter(TIM_TypeDef* TIMx);\r
877 uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx);\r
878 void TIM_SelectOCREFClear(TIM_TypeDef* TIMx, uint16_t TIM_OCReferenceClear);\r
879 void TIM_RemapConfig(TIM_TypeDef* TIMx, uint16_t TIM_Remap);\r
880 FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);\r
881 void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);\r
882 ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);\r
883 void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);\r
884 \r
885 #ifdef __cplusplus\r
886 }\r
887 #endif\r
888 #endif /*__STM32L1xx_TIM_H */\r
889 /**\r
890   * @}\r
891   */ \r
892 \r
893 /**\r
894   * @}\r
895   */ \r
896 \r
897 /**\r
898   * @}\r
899   */\r
900 \r
901 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/\r