1 /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
\r
2 * File Name : stm32f10x_tim1.h
\r
3 * Author : MCD Application Team
\r
4 * Date First Issued : 09/29/2006
\r
5 * Description : This file contains all the functions prototypes for the
\r
6 * TIM1 firmware library.
\r
7 ********************************************************************************
\r
12 ********************************************************************************
\r
13 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
14 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
15 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
16 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
17 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
18 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
19 *******************************************************************************/
\r
21 /* Define to prevent recursive inclusion -------------------------------------*/
\r
22 #ifndef __STM32F10x_TIM1_H
\r
23 #define __STM32F10x_TIM1_H
\r
25 /* Includes ------------------------------------------------------------------*/
\r
26 #include "stm32f10x_map.h"
\r
28 /* Exported types ------------------------------------------------------------*/
\r
30 /* TIM1 Time Base Init structure definition */
\r
34 u16 TIM1_CounterMode;
\r
36 u16 TIM1_ClockDivision;
\r
37 u8 TIM1_RepetitionCounter;
\r
38 } TIM1_TimeBaseInitTypeDef;
\r
40 /* TIM1 Output Compare Init structure definition */
\r
44 u16 TIM1_OutputState;
\r
45 u16 TIM1_OutputNState;
\r
47 u16 TIM1_OCPolarity;
\r
48 u16 TIM1_OCNPolarity;
\r
49 u16 TIM1_OCIdleState;
\r
50 u16 TIM1_OCNIdleState;
\r
51 } TIM1_OCInitTypeDef;
\r
53 /* TIM1 Input Capture Init structure definition */
\r
57 u16 TIM1_ICPolarity;
\r
58 u16 TIM1_ICSelection;
\r
59 u16 TIM1_ICPrescaler;
\r
61 } TIM1_ICInitTypeDef;
\r
63 /* BDTR structure definition */
\r
68 u16 TIM1_LOCKLevel;
\r
71 u16 TIM1_BreakPolarity;
\r
72 u16 TIM1_AutomaticOutput;
\r
73 } TIM1_BDTRInitTypeDef;
\r
75 /* Exported constants --------------------------------------------------------*/
\r
76 /* TIM1 Output Compare and PWM modes ----------------------------------------*/
\r
77 #define TIM1_OCMode_Timing ((u16)0x0000)
\r
78 #define TIM1_OCMode_Active ((u16)0x0010)
\r
79 #define TIM1_OCMode_Inactive ((u16)0x0020)
\r
80 #define TIM1_OCMode_Toggle ((u16)0x0030)
\r
81 #define TIM1_OCMode_PWM1 ((u16)0x0060)
\r
82 #define TIM1_OCMode_PWM2 ((u16)0x0070)
\r
84 #define IS_TIM1_OC_MODE(MODE) ((MODE == TIM1_OCMode_Timing) || \
\r
85 (MODE == TIM1_OCMode_Active) || \
\r
86 (MODE == TIM1_OCMode_Inactive) || \
\r
87 (MODE == TIM1_OCMode_Toggle)|| \
\r
88 (MODE == TIM1_OCMode_PWM1) || \
\r
89 (MODE == TIM1_OCMode_PWM2))
\r
91 #define IS_TIM1_OCM(MODE)((MODE == TIM1_OCMode_Timing) || \
\r
92 (MODE == TIM1_OCMode_Active) || \
\r
93 (MODE == TIM1_OCMode_Inactive) || \
\r
94 (MODE == TIM1_OCMode_Toggle)|| \
\r
95 (MODE == TIM1_OCMode_PWM1) || \
\r
96 (MODE == TIM1_OCMode_PWM2) || \
\r
97 (MODE == TIM1_ForcedAction_Active) || \
\r
98 (MODE == TIM1_ForcedAction_InActive))
\r
99 /* TIM1 One Pulse Mode ------------------------------------------------------*/
\r
100 #define TIM1_OPMode_Single ((u16)0x0001)
\r
101 #define TIM1_OPMode_Repetitive ((u16)0x0000)
\r
103 #define IS_TIM1_OPM_MODE(MODE) ((MODE == TIM1_OPMode_Single) || \
\r
104 (MODE == TIM1_OPMode_Repetitive))
\r
106 /* TIM1 Channel -------------------------------------------------------------*/
\r
107 #define TIM1_Channel_1 ((u16)0x0000)
\r
108 #define TIM1_Channel_2 ((u16)0x0001)
\r
109 #define TIM1_Channel_3 ((u16)0x0002)
\r
110 #define TIM1_Channel_4 ((u16)0x0003)
\r
112 #define IS_TIM1_CHANNEL(CHANNEL) ((CHANNEL == TIM1_Channel_1) || \
\r
113 (CHANNEL == TIM1_Channel_2) || \
\r
114 (CHANNEL == TIM1_Channel_3) || \
\r
115 (CHANNEL == TIM1_Channel_4))
\r
117 #define IS_TIM1_PWMI_CHANNEL(CHANNEL) ((CHANNEL == TIM1_Channel_1) || \
\r
118 (CHANNEL == TIM1_Channel_2))
\r
120 #define IS_TIM1_COMPLEMENTARY_CHANNEL(CHANNEL) ((CHANNEL == TIM1_Channel_1) || \
\r
121 (CHANNEL == TIM1_Channel_2) || \
\r
122 (CHANNEL == TIM1_Channel_3))
\r
123 /* TIM1 Clock Division CKD --------------------------------------------------*/
\r
124 #define TIM1_CKD_DIV1 ((u16)0x0000)
\r
125 #define TIM1_CKD_DIV2 ((u16)0x0100)
\r
126 #define TIM1_CKD_DIV4 ((u16)0x0200)
\r
128 #define IS_TIM1_CKD_DIV(DIV) ((DIV == TIM1_CKD_DIV1) || \
\r
129 (DIV == TIM1_CKD_DIV2) || \
\r
130 (DIV == TIM1_CKD_DIV4))
\r
132 /* TIM1 Counter Mode --------------------------------------------------------*/
\r
133 #define TIM1_CounterMode_Up ((u16)0x0000)
\r
134 #define TIM1_CounterMode_Down ((u16)0x0010)
\r
135 #define TIM1_CounterMode_CenterAligned1 ((u16)0x0020)
\r
136 #define TIM1_CounterMode_CenterAligned2 ((u16)0x0040)
\r
137 #define TIM1_CounterMode_CenterAligned3 ((u16)0x0060)
\r
139 #define IS_TIM1_COUNTER_MODE(MODE) ((MODE == TIM1_CounterMode_Up) || \
\r
140 (MODE == TIM1_CounterMode_Down) || \
\r
141 (MODE == TIM1_CounterMode_CenterAligned1) || \
\r
142 (MODE == TIM1_CounterMode_CenterAligned2) || \
\r
143 (MODE == TIM1_CounterMode_CenterAligned3))
\r
145 /* TIM1 Output Compare Polarity ---------------------------------------------*/
\r
146 #define TIM1_OCPolarity_High ((u16)0x0000)
\r
147 #define TIM1_OCPolarity_Low ((u16)0x0001)
\r
149 #define IS_TIM1_OC_POLARITY(POLARITY) ((POLARITY == TIM1_OCPolarity_High) || \
\r
150 (POLARITY == TIM1_OCPolarity_Low))
\r
152 /* TIM1 Output Compare N Polarity -------------------------------------------*/
\r
153 #define TIM1_OCNPolarity_High ((u16)0x0000)
\r
154 #define TIM1_OCNPolarity_Low ((u16)0x0001)
\r
156 #define IS_TIM1_OCN_POLARITY(POLARITY) ((POLARITY == TIM1_OCNPolarity_High) || \
\r
157 (POLARITY == TIM1_OCNPolarity_Low))
\r
159 /* TIM1 Output Compare states -----------------------------------------------*/
\r
160 #define TIM1_OutputState_Disable ((u16)0x0000)
\r
161 #define TIM1_OutputState_Enable ((u16)0x0001)
\r
163 #define IS_TIM1_OUTPUT_STATE(STATE) ((STATE == TIM1_OutputState_Disable) || \
\r
164 (STATE == TIM1_OutputState_Enable))
\r
166 /* TIM1 Output Compare N States ---------------------------------------------*/
\r
167 #define TIM1_OutputNState_Disable ((u16)0x0000)
\r
168 #define TIM1_OutputNState_Enable ((u16)0x0001)
\r
170 #define IS_TIM1_OUTPUTN_STATE(STATE) ((STATE == TIM1_OutputNState_Disable) || \
\r
171 (STATE == TIM1_OutputNState_Enable))
\r
173 /* Break Input enable/disable -----------------------------------------------*/
\r
174 #define TIM1_Break_Enable ((u16)0x1000)
\r
175 #define TIM1_Break_Disable ((u16)0x0000)
\r
177 #define IS_TIM1_BREAK_STATE(STATE) ((STATE == TIM1_Break_Enable) || \
\r
178 (STATE == TIM1_Break_Disable))
\r
180 /* Break Polarity -----------------------------------------------------------*/
\r
181 #define TIM1_BreakPolarity_Low ((u16)0x0000)
\r
182 #define TIM1_BreakPolarity_High ((u16)0x2000)
\r
184 #define IS_TIM1_BREAK_POLARITY(POLARITY) ((POLARITY == TIM1_BreakPolarity_Low) || \
\r
185 (POLARITY == TIM1_BreakPolarity_High))
\r
187 /* TIM1 AOE Bit Set/Reset ---------------------------------------------------*/
\r
188 #define TIM1_AutomaticOutput_Enable ((u16)0x4000)
\r
189 #define TIM1_AutomaticOutput_Disable ((u16)0x0000)
\r
191 #define IS_TIM1_AUTOMATIC_OUTPUT_STATE(STATE) ((STATE == TIM1_AutomaticOutput_Enable) || \
\r
192 (STATE == TIM1_AutomaticOutput_Disable))
\r
193 /* Lock levels --------------------------------------------------------------*/
\r
194 #define TIM1_LOCKLevel_OFF ((u16)0x0000)
\r
195 #define TIM1_LOCKLevel_1 ((u16)0x0100)
\r
196 #define TIM1_LOCKLevel_2 ((u16)0x0200)
\r
197 #define TIM1_LOCKLevel_3 ((u16)0x0300)
\r
199 #define IS_TIM1_LOCK_LEVEL(LEVEL) ((LEVEL == TIM1_LOCKLevel_OFF) || \
\r
200 (LEVEL == TIM1_LOCKLevel_1) || \
\r
201 (LEVEL == TIM1_LOCKLevel_2) || \
\r
202 (LEVEL == TIM1_LOCKLevel_3))
\r
204 /* OSSI: Off-State Selection for Idle mode states ---------------------------*/
\r
205 #define TIM1_OSSIState_Enable ((u16)0x0400)
\r
206 #define TIM1_OSSIState_Disable ((u16)0x0000)
\r
208 #define IS_TIM1_OSSI_STATE(STATE) ((STATE == TIM1_OSSIState_Enable) || \
\r
209 (STATE == TIM1_OSSIState_Disable))
\r
211 /* OSSR: Off-State Selection for Run mode states ----------------------------*/
\r
212 #define TIM1_OSSRState_Enable ((u16)0x0800)
\r
213 #define TIM1_OSSRState_Disable ((u16)0x0000)
\r
215 #define IS_TIM1_OSSR_STATE(STATE) ((STATE == TIM1_OSSRState_Enable) || \
\r
216 (STATE == TIM1_OSSRState_Disable))
\r
218 /* TIM1 Output Compare Idle State -------------------------------------------*/
\r
219 #define TIM1_OCIdleState_Set ((u16)0x0001)
\r
220 #define TIM1_OCIdleState_Reset ((u16)0x0000)
\r
222 #define IS_TIM1_OCIDLE_STATE(STATE) ((STATE == TIM1_OCIdleState_Set) || \
\r
223 (STATE == TIM1_OCIdleState_Reset))
\r
225 /* TIM1 Output Compare N Idle State -----------------------------------------*/
\r
226 #define TIM1_OCNIdleState_Set ((u16)0x0001)
\r
227 #define TIM1_OCNIdleState_Reset ((u16)0x0000)
\r
229 #define IS_TIM1_OCNIDLE_STATE(STATE) ((STATE == TIM1_OCNIdleState_Set) || \
\r
230 (STATE == TIM1_OCNIdleState_Reset))
\r
232 /* TIM1 Input Capture Polarity ----------------------------------------------*/
\r
233 #define TIM1_ICPolarity_Rising ((u16)0x0000)
\r
234 #define TIM1_ICPolarity_Falling ((u16)0x0001)
\r
236 #define IS_TIM1_IC_POLARITY(POLARITY) ((POLARITY == TIM1_ICPolarity_Rising) || \
\r
237 (POLARITY == TIM1_ICPolarity_Falling))
\r
239 /* TIM1 Input Capture Selection ---------------------------------------------*/
\r
240 #define TIM1_ICSelection_DirectTI ((u16)0x0001)
\r
241 #define TIM1_ICSelection_IndirectTI ((u16)0x0002)
\r
242 #define TIM1_ICSelection_TRGI ((u16)0x0003)
\r
244 #define IS_TIM1_IC_SELECTION(SELECTION) ((SELECTION == TIM1_ICSelection_DirectTI) || \
\r
245 (SELECTION == TIM1_ICSelection_IndirectTI) || \
\r
246 (SELECTION == TIM1_ICSelection_TRGI))
\r
248 /* TIM1 Input Capture Prescaler ---------------------------------------------*/
\r
249 #define TIM1_ICPSC_DIV1 ((u16)0x0000)
\r
250 #define TIM1_ICPSC_DIV2 ((u16)0x0004)
\r
251 #define TIM1_ICPSC_DIV4 ((u16)0x0008)
\r
252 #define TIM1_ICPSC_DIV8 ((u16)0x000C)
\r
254 #define IS_TIM1_IC_PRESCALER(PRESCALER) ((PRESCALER == TIM1_ICPSC_DIV1) || \
\r
255 (PRESCALER == TIM1_ICPSC_DIV2) || \
\r
256 (PRESCALER == TIM1_ICPSC_DIV4) || \
\r
257 (PRESCALER == TIM1_ICPSC_DIV8))
\r
259 /* TIM1 Input Capture Filer Value ---------------------------------------------*/
\r
260 #define IS_TIM1_IC_FILTER(ICFILTER) (ICFILTER <= 0xF)
\r
262 /* TIM1 interrupt sources ---------------------------------------------------*/
\r
263 #define TIM1_IT_Update ((u16)0x0001)
\r
264 #define TIM1_IT_CC1 ((u16)0x0002)
\r
265 #define TIM1_IT_CC2 ((u16)0x0004)
\r
266 #define TIM1_IT_CC3 ((u16)0x0008)
\r
267 #define TIM1_IT_CC4 ((u16)0x0010)
\r
268 #define TIM1_IT_COM ((u16)0x0020)
\r
269 #define TIM1_IT_Trigger ((u16)0x0040)
\r
270 #define TIM1_IT_Break ((u16)0x0080)
\r
272 #define IS_TIM1_IT(IT) (((IT & (u16)0xFF00) == 0x0000) && (IT != 0x0000))
\r
274 #define IS_TIM1_GET_IT(IT) ((IT == TIM1_IT_Update) || \
\r
275 (IT == TIM1_IT_CC1) || \
\r
276 (IT == TIM1_IT_CC2) || \
\r
277 (IT == TIM1_IT_CC3) || \
\r
278 (IT == TIM1_IT_CC4) || \
\r
279 (IT == TIM1_IT_COM) || \
\r
280 (IT == TIM1_IT_Trigger) || \
\r
281 (IT == TIM1_IT_Break))
\r
283 /* TIM1 DMA Base address ----------------------------------------------------*/
\r
284 #define TIM1_DMABase_CR1 ((u16)0x0000)
\r
285 #define TIM1_DMABase_CR2 ((u16)0x0001)
\r
286 #define TIM1_DMABase_SMCR ((u16)0x0002)
\r
287 #define TIM1_DMABase_DIER ((u16)0x0003)
\r
288 #define TIM1_DMABase_SR ((u16)0x0004)
\r
289 #define TIM1_DMABase_EGR ((u16)0x0005)
\r
290 #define TIM1_DMABase_CCMR1 ((u16)0x0006)
\r
291 #define TIM1_DMABase_CCMR2 ((u16)0x0007)
\r
292 #define TIM1_DMABase_CCER ((u16)0x0008)
\r
293 #define TIM1_DMABase_CNT ((u16)0x0009)
\r
294 #define TIM1_DMABase_PSC ((u16)0x000A)
\r
295 #define TIM1_DMABase_ARR ((u16)0x000B)
\r
296 #define TIM1_DMABase_RCR ((u16)0x000C)
\r
297 #define TIM1_DMABase_CCR1 ((u16)0x000D)
\r
298 #define TIM1_DMABase_CCR2 ((u16)0x000E)
\r
299 #define TIM1_DMABase_CCR3 ((u16)0x000F)
\r
300 #define TIM1_DMABase_CCR4 ((u16)0x0010)
\r
301 #define TIM1_DMABase_BDTR ((u16)0x0011)
\r
302 #define TIM1_DMABase_DCR ((u16)0x0012)
\r
304 #define IS_TIM1_DMA_BASE(BASE) ((BASE == TIM1_DMABase_CR1) || \
\r
305 (BASE == TIM1_DMABase_CR2) || \
\r
306 (BASE == TIM1_DMABase_SMCR) || \
\r
307 (BASE == TIM1_DMABase_DIER) || \
\r
308 (BASE == TIM1_DMABase_SR) || \
\r
309 (BASE == TIM1_DMABase_EGR) || \
\r
310 (BASE == TIM1_DMABase_CCMR1) || \
\r
311 (BASE == TIM1_DMABase_CCMR2) || \
\r
312 (BASE == TIM1_DMABase_CCER) || \
\r
313 (BASE == TIM1_DMABase_CNT) || \
\r
314 (BASE == TIM1_DMABase_PSC) || \
\r
315 (BASE == TIM1_DMABase_ARR) || \
\r
316 (BASE == TIM1_DMABase_RCR) || \
\r
317 (BASE == TIM1_DMABase_CCR1) || \
\r
318 (BASE == TIM1_DMABase_CCR2) || \
\r
319 (BASE == TIM1_DMABase_CCR3) || \
\r
320 (BASE == TIM1_DMABase_CCR4) || \
\r
321 (BASE == TIM1_DMABase_BDTR) || \
\r
322 (BASE == TIM1_DMABase_DCR))
\r
324 /* TIM1 DMA Burst Length ----------------------------------------------------*/
\r
325 #define TIM1_DMABurstLength_1Byte ((u16)0x0000)
\r
326 #define TIM1_DMABurstLength_2Bytes ((u16)0x0100)
\r
327 #define TIM1_DMABurstLength_3Bytes ((u16)0x0200)
\r
328 #define TIM1_DMABurstLength_4Bytes ((u16)0x0300)
\r
329 #define TIM1_DMABurstLength_5Bytes ((u16)0x0400)
\r
330 #define TIM1_DMABurstLength_6Bytes ((u16)0x0500)
\r
331 #define TIM1_DMABurstLength_7Bytes ((u16)0x0600)
\r
332 #define TIM1_DMABurstLength_8Bytes ((u16)0x0700)
\r
333 #define TIM1_DMABurstLength_9Bytes ((u16)0x0800)
\r
334 #define TIM1_DMABurstLength_10Bytes ((u16)0x0900)
\r
335 #define TIM1_DMABurstLength_11Bytes ((u16)0x0A00)
\r
336 #define TIM1_DMABurstLength_12Bytes ((u16)0x0B00)
\r
337 #define TIM1_DMABurstLength_13Bytes ((u16)0x0C00)
\r
338 #define TIM1_DMABurstLength_14Bytes ((u16)0x0D00)
\r
339 #define TIM1_DMABurstLength_15Bytes ((u16)0x0E00)
\r
340 #define TIM1_DMABurstLength_16Bytes ((u16)0x0F00)
\r
341 #define TIM1_DMABurstLength_17Bytes ((u16)0x1000)
\r
342 #define TIM1_DMABurstLength_18Bytes ((u16)0x1100)
\r
344 #define IS_TIM1_DMA_LENGTH(LENGTH) ((LENGTH == TIM1_DMABurstLength_1Byte) || \
\r
345 (LENGTH == TIM1_DMABurstLength_2Bytes) || \
\r
346 (LENGTH == TIM1_DMABurstLength_3Bytes) || \
\r
347 (LENGTH == TIM1_DMABurstLength_4Bytes) || \
\r
348 (LENGTH == TIM1_DMABurstLength_5Bytes) || \
\r
349 (LENGTH == TIM1_DMABurstLength_6Bytes) || \
\r
350 (LENGTH == TIM1_DMABurstLength_7Bytes) || \
\r
351 (LENGTH == TIM1_DMABurstLength_8Bytes) || \
\r
352 (LENGTH == TIM1_DMABurstLength_9Bytes) || \
\r
353 (LENGTH == TIM1_DMABurstLength_10Bytes) || \
\r
354 (LENGTH == TIM1_DMABurstLength_11Bytes) || \
\r
355 (LENGTH == TIM1_DMABurstLength_12Bytes) || \
\r
356 (LENGTH == TIM1_DMABurstLength_13Bytes) || \
\r
357 (LENGTH == TIM1_DMABurstLength_14Bytes) || \
\r
358 (LENGTH == TIM1_DMABurstLength_15Bytes) || \
\r
359 (LENGTH == TIM1_DMABurstLength_16Bytes) || \
\r
360 (LENGTH == TIM1_DMABurstLength_17Bytes) || \
\r
361 (LENGTH == TIM1_DMABurstLength_18Bytes))
\r
363 /* TIM1 DMA sources ---------------------------------------------------------*/
\r
364 #define TIM1_DMA_Update ((u16)0x0100)
\r
365 #define TIM1_DMA_CC1 ((u16)0x0200)
\r
366 #define TIM1_DMA_CC2 ((u16)0x0400)
\r
367 #define TIM1_DMA_CC3 ((u16)0x0800)
\r
368 #define TIM1_DMA_CC4 ((u16)0x1000)
\r
369 #define TIM1_DMA_COM ((u16)0x2000)
\r
370 #define TIM1_DMA_Trigger ((u16)0x4000)
\r
372 #define IS_TIM1_DMA_SOURCE(SOURCE) (((SOURCE & (u16)0x80FF) == 0x0000) && (SOURCE != 0x0000))
\r
374 /* TIM1 External Trigger Prescaler ------------------------------------------*/
\r
375 #define TIM1_ExtTRGPSC_OFF ((u16)0x0000)
\r
376 #define TIM1_ExtTRGPSC_DIV2 ((u16)0x1000)
\r
377 #define TIM1_ExtTRGPSC_DIV4 ((u16)0x2000)
\r
378 #define TIM1_ExtTRGPSC_DIV8 ((u16)0x3000)
\r
380 #define IS_TIM1_EXT_PRESCALER(PRESCALER) ((PRESCALER == TIM1_ExtTRGPSC_OFF) || \
\r
381 (PRESCALER == TIM1_ExtTRGPSC_DIV2) || \
\r
382 (PRESCALER == TIM1_ExtTRGPSC_DIV4) || \
\r
383 (PRESCALER == TIM1_ExtTRGPSC_DIV8))
\r
385 /* TIM1 Internal Trigger Selection ------------------------------------------*/
\r
386 #define TIM1_TS_ITR0 ((u16)0x0000)
\r
387 #define TIM1_TS_ITR1 ((u16)0x0010)
\r
388 #define TIM1_TS_ITR2 ((u16)0x0020)
\r
389 #define TIM1_TS_ITR3 ((u16)0x0030)
\r
390 #define TIM1_TS_TI1F_ED ((u16)0x0040)
\r
391 #define TIM1_TS_TI1FP1 ((u16)0x0050)
\r
392 #define TIM1_TS_TI2FP2 ((u16)0x0060)
\r
393 #define TIM1_TS_ETRF ((u16)0x0070)
\r
395 #define IS_TIM1_TRIGGER_SELECTION(SELECTION) ((SELECTION == TIM1_TS_ITR0) || \
\r
396 (SELECTION == TIM1_TS_ITR1) || \
\r
397 (SELECTION == TIM1_TS_ITR2) || \
\r
398 (SELECTION == TIM1_TS_ITR3) || \
\r
399 (SELECTION == TIM1_TS_TI1F_ED) || \
\r
400 (SELECTION == TIM1_TS_TI1FP1) || \
\r
401 (SELECTION == TIM1_TS_TI2FP2) || \
\r
402 (SELECTION == TIM1_TS_ETRF))
\r
404 #define IS_TIM1_INTERNAL_TRIGGER_SELECTION(SELECTION) ((SELECTION == TIM1_TS_ITR0) || \
\r
405 (SELECTION == TIM1_TS_ITR1) || \
\r
406 (SELECTION == TIM1_TS_ITR2) || \
\r
407 (SELECTION == TIM1_TS_ITR3))
\r
409 #define IS_TIM1_TIX_TRIGGER_SELECTION(SELECTION) ((SELECTION == TIM1_TS_TI1F_ED) || \
\r
410 (SELECTION == TIM1_TS_TI1FP1) || \
\r
411 (SELECTION == TIM1_TS_TI2FP2))
\r
413 /* TIM1 External Trigger Polarity -------------------------------------------*/
\r
414 #define TIM1_ExtTRGPolarity_Inverted ((u16)0x8000)
\r
415 #define TIM1_ExtTRGPolarity_NonInverted ((u16)0x0000)
\r
417 #define IS_TIM1_EXT_POLARITY(POLARITY) ((POLARITY == TIM1_ExtTRGPolarity_Inverted) || \
\r
418 (POLARITY == TIM1_ExtTRGPolarity_NonInverted))
\r
420 /* TIM1 Prescaler Reload Mode -----------------------------------------------*/
\r
421 #define TIM1_PSCReloadMode_Update ((u16)0x0000)
\r
422 #define TIM1_PSCReloadMode_Immediate ((u16)0x0001)
\r
424 #define IS_TIM1_PRESCALER_RELOAD(RELOAD) ((RELOAD == TIM1_PSCReloadMode_Update) || \
\r
425 (RELOAD == TIM1_PSCReloadMode_Immediate))
\r
427 /* TIM1 Forced Action -------------------------------------------------------*/
\r
428 #define TIM1_ForcedAction_Active ((u16)0x0050)
\r
429 #define TIM1_ForcedAction_InActive ((u16)0x0040)
\r
431 #define IS_TIM1_FORCED_ACTION(ACTION) ((ACTION == TIM1_ForcedAction_Active) || \
\r
432 (ACTION == TIM1_ForcedAction_InActive))
\r
434 /* TIM1 Encoder Mode --------------------------------------------------------*/
\r
435 #define TIM1_EncoderMode_TI1 ((u16)0x0001)
\r
436 #define TIM1_EncoderMode_TI2 ((u16)0x0002)
\r
437 #define TIM1_EncoderMode_TI12 ((u16)0x0003)
\r
439 #define IS_TIM1_ENCODER_MODE(MODE) ((MODE == TIM1_EncoderMode_TI1) || \
\r
440 (MODE == TIM1_EncoderMode_TI2) || \
\r
441 (MODE == TIM1_EncoderMode_TI12))
\r
443 /* TIM1 Event Source --------------------------------------------------------*/
\r
444 #define TIM1_EventSource_Update ((u16)0x0001)
\r
445 #define TIM1_EventSource_CC1 ((u16)0x0002)
\r
446 #define TIM1_EventSource_CC2 ((u16)0x0004)
\r
447 #define TIM1_EventSource_CC3 ((u16)0x0008)
\r
448 #define TIM1_EventSource_CC4 ((u16)0x0010)
\r
449 #define TIM1_EventSource_COM ((u16)0x0020)
\r
450 #define TIM1_EventSource_Trigger ((u16)0x0040)
\r
451 #define TIM1_EventSource_Break ((u16)0x0080)
\r
453 #define IS_TIM1_EVENT_SOURCE(SOURCE) (((SOURCE & (u16)0xFF00) == 0x0000) && (SOURCE != 0x0000))
\r
456 /* TIM1 Update Source -------------------------------------------------------*/
\r
457 #define TIM1_UpdateSource_Global ((u16)0x0000)
\r
458 #define TIM1_UpdateSource_Regular ((u16)0x0001)
\r
460 #define IS_TIM1_UPDATE_SOURCE(SOURCE) ((SOURCE == TIM1_UpdateSource_Global) || \
\r
461 (SOURCE == TIM1_UpdateSource_Regular))
\r
463 /* TIM1 Ouput Compare Preload State ------------------------------------------*/
\r
464 #define TIM1_OCPreload_Enable ((u16)0x0001)
\r
465 #define TIM1_OCPreload_Disable ((u16)0x0000)
\r
467 #define IS_TIM1_OCPRELOAD_STATE(STATE) ((STATE == TIM1_OCPreload_Enable) || \
\r
468 (STATE == TIM1_OCPreload_Disable))
\r
470 /* TIM1 Ouput Compare Fast State ---------------------------------------------*/
\r
471 #define TIM1_OCFast_Enable ((u16)0x0001)
\r
472 #define TIM1_OCFast_Disable ((u16)0x0000)
\r
474 #define IS_TIM1_OCFAST_STATE(STATE) ((STATE == TIM1_OCFast_Enable) || \
\r
475 (STATE == TIM1_OCFast_Disable))
\r
477 /* TIM1 Trigger Output Source -----------------------------------------------*/
\r
478 #define TIM1_TRGOSource_Reset ((u16)0x0000)
\r
479 #define TIM1_TRGOSource_Enable ((u16)0x0010)
\r
480 #define TIM1_TRGOSource_Update ((u16)0x0020)
\r
481 #define TIM1_TRGOSource_OC1 ((u16)0x0030)
\r
482 #define TIM1_TRGOSource_OC1Ref ((u16)0x0040)
\r
483 #define TIM1_TRGOSource_OC2Ref ((u16)0x0050)
\r
484 #define TIM1_TRGOSource_OC3Ref ((u16)0x0060)
\r
485 #define TIM1_TRGOSource_OC4Ref ((u16)0x0070)
\r
487 #define IS_TIM1_TRGO_SOURCE(SOURCE) ((SOURCE == TIM1_TRGOSource_Reset) || \
\r
488 (SOURCE == TIM1_TRGOSource_Enable) || \
\r
489 (SOURCE == TIM1_TRGOSource_Update) || \
\r
490 (SOURCE == TIM1_TRGOSource_OC1) || \
\r
491 (SOURCE == TIM1_TRGOSource_OC1Ref) || \
\r
492 (SOURCE == TIM1_TRGOSource_OC2Ref) || \
\r
493 (SOURCE == TIM1_TRGOSource_OC3Ref) || \
\r
494 (SOURCE == TIM1_TRGOSource_OC4Ref))
\r
496 /* TIM1 Slave Mode ----------------------------------------------------------*/
\r
497 #define TIM1_SlaveMode_Reset ((u16)0x0004)
\r
498 #define TIM1_SlaveMode_Gated ((u16)0x0005)
\r
499 #define TIM1_SlaveMode_Trigger ((u16)0x0006)
\r
500 #define TIM1_SlaveMode_External1 ((u16)0x0007)
\r
502 #define IS_TIM1_SLAVE_MODE(MODE) ((MODE == TIM1_SlaveMode_Reset) || \
\r
503 (MODE == TIM1_SlaveMode_Gated) || \
\r
504 (MODE == TIM1_SlaveMode_Trigger) || \
\r
505 (MODE == TIM1_SlaveMode_External1))
\r
507 /* TIM1 TIx External Clock Source -------------------------------------------*/
\r
508 #define TIM1_TIxExternalCLK1Source_TI1 ((u16)0x0050)
\r
509 #define TIM1_TIxExternalCLK1Source_TI2 ((u16)0x0060)
\r
510 #define TIM1_TIxExternalCLK1Source_TI1ED ((u16)0x0040)
\r
512 #define IS_TIM1_TIXCLK_SOURCE(SOURCE) ((SOURCE == TIM1_TIxExternalCLK1Source_TI1) || \
\r
513 (SOURCE == TIM1_TIxExternalCLK1Source_TI2) || \
\r
514 (SOURCE == TIM1_TIxExternalCLK1Source_TI1ED))
\r
516 /* TIM1 Master Slave Mode ---------------------------------------------------*/
\r
517 #define TIM1_MasterSlaveMode_Enable ((u16)0x0001)
\r
518 #define TIM1_MasterSlaveMode_Disable ((u16)0x0000)
\r
520 #define IS_TIM1_MSM_STATE(STATE) ((STATE == TIM1_MasterSlaveMode_Enable) || \
\r
521 (STATE == TIM1_MasterSlaveMode_Disable))
\r
523 /* TIM1 Flags ---------------------------------------------------------------*/
\r
524 #define TIM1_FLAG_Update ((u16)0x0001)
\r
525 #define TIM1_FLAG_CC1 ((u16)0x0002)
\r
526 #define TIM1_FLAG_CC2 ((u16)0x0004)
\r
527 #define TIM1_FLAG_CC3 ((u16)0x0008)
\r
528 #define TIM1_FLAG_CC4 ((u16)0x0010)
\r
529 #define TIM1_FLAG_COM ((u16)0x0020)
\r
530 #define TIM1_FLAG_Trigger ((u16)0x0040)
\r
531 #define TIM1_FLAG_Break ((u16)0x0080)
\r
532 #define TIM1_FLAG_CC1OF ((u16)0x0200)
\r
533 #define TIM1_FLAG_CC2OF ((u16)0x0400)
\r
534 #define TIM1_FLAG_CC3OF ((u16)0x0800)
\r
535 #define TIM1_FLAG_CC4OF ((u16)0x1000)
\r
537 #define IS_TIM1_GET_FLAG(FLAG) ((FLAG == TIM1_FLAG_Update) || \
\r
538 (FLAG == TIM1_FLAG_CC1) || \
\r
539 (FLAG == TIM1_FLAG_CC2) || \
\r
540 (FLAG == TIM1_FLAG_CC3) || \
\r
541 (FLAG == TIM1_FLAG_CC4) || \
\r
542 (FLAG == TIM1_FLAG_COM) || \
\r
543 (FLAG == TIM1_FLAG_Trigger) || \
\r
544 (FLAG == TIM1_FLAG_Break) || \
\r
545 (FLAG == TIM1_FLAG_CC1OF) || \
\r
546 (FLAG == TIM1_FLAG_CC2OF) || \
\r
547 (FLAG == TIM1_FLAG_CC3OF) || \
\r
548 (FLAG == TIM1_FLAG_CC4OF))
\r
550 #define IS_TIM1_CLEAR_FLAG(FLAG) (((FLAG & (u16)0xE100) == 0x0000) && (FLAG != 0x0000))
\r
553 /* Exported macro ------------------------------------------------------------*/
\r
554 /* Exported functions --------------------------------------------------------*/
\r
556 void TIM1_DeInit(void);
\r
557 void TIM1_TimeBaseInit(TIM1_TimeBaseInitTypeDef* TIM1_TimeBaseInitStruct);
\r
558 void TIM1_OC1Init(TIM1_OCInitTypeDef* TIM1_OCInitStruct);
\r
559 void TIM1_OC2Init(TIM1_OCInitTypeDef* TIM1_OCInitStruct);
\r
560 void TIM1_OC3Init(TIM1_OCInitTypeDef* TIM1_OCInitStruct);
\r
561 void TIM1_OC4Init(TIM1_OCInitTypeDef* TIM1_OCInitStruct);
\r
562 void TIM1_BDTRConfig(TIM1_BDTRInitTypeDef *TIM1_BDTRInitStruct);
\r
563 void TIM1_ICInit(TIM1_ICInitTypeDef* TIM1_ICInitStruct);
\r
564 void TIM1_PWMIConfig(TIM1_ICInitTypeDef* TIM1_ICInitStruct);
\r
565 void TIM1_TimeBaseStructInit(TIM1_TimeBaseInitTypeDef* TIM1_TimeBaseInitStruct);
\r
566 void TIM1_OCStructInit(TIM1_OCInitTypeDef* TIM1_OCInitStruct);
\r
567 void TIM1_ICStructInit(TIM1_ICInitTypeDef* TIM1_ICInitStruct);
\r
568 void TIM1_BDTRStructInit(TIM1_BDTRInitTypeDef* TIM1_BDTRInitStruct);
\r
569 void TIM1_Cmd(FunctionalState NewState);
\r
570 void TIM1_CtrlPWMOutputs(FunctionalState Newstate);
\r
571 void TIM1_ITConfig(u16 TIM1_IT, FunctionalState NewState);
\r
572 void TIM1_DMAConfig(u16 TIM1_DMABase, u16 TIM1_DMABurstLength);
\r
573 void TIM1_DMACmd(u16 TIM1_DMASource, FunctionalState Newstate);
\r
574 void TIM1_InternalClockConfig(void);
\r
575 void TIM1_ETRClockMode1Config(u16 TIM1_ExtTRGPrescaler, u16 TIM1_ExtTRGPolarity,
\r
577 void TIM1_ETRClockMode2Config(u16 TIM1_ExtTRGPrescaler, u16 TIM1_ExtTRGPolarity,
\r
579 void TIM1_ITRxExternalClockConfig(u16 TIM1_InputTriggerSource);
\r
580 void TIM1_TIxExternalClockConfig(u16 TIM1_TIxExternalCLKSource, u16 TIM1_ICPolarity,
\r
582 void TIM1_SelectInputTrigger(u16 TIM1_InputTriggerSource);
\r
583 void TIM1_UpdateDisableConfig(FunctionalState Newstate);
\r
584 void TIM1_UpdateRequestConfig(u8 TIM1_UpdateSource);
\r
585 void TIM1_SelectHallSensor(FunctionalState Newstate);
\r
586 void TIM1_SelectOnePulseMode(u16 TIM1_OPMode);
\r
587 void TIM1_SelectOutputTrigger(u16 TIM1_TRGOSource);
\r
588 void TIM1_SelectSlaveMode(u16 TIM1_SlaveMode);
\r
589 void TIM1_SelectMasterSlaveMode(u16 TIM1_MasterSlaveMode);
\r
590 void TIM1_EncoderInterfaceConfig(u16 TIM1_EncoderMode, u16 TIM1_IC1Polarity,
\r
591 u16 TIM1_IC2Polarity);
\r
592 void TIM1_PrescalerConfig(u16 Prescaler, u16 TIM1_PSCReloadMode);
\r
593 void TIM1_CounterModeConfig(u16 TIM1_CounterMode);
\r
594 void TIM1_ForcedOC1Config(u16 TIM1_ForcedAction);
\r
595 void TIM1_ForcedOC2Config(u16 TIM1_ForcedAction);
\r
596 void TIM1_ForcedOC3Config(u16 TIM1_ForcedAction);
\r
597 void TIM1_ForcedOC4Config(u16 TIM1_ForcedAction);
\r
598 void TIM1_ARRPreloadConfig(FunctionalState Newstate);
\r
599 void TIM1_SelectCOM(FunctionalState Newstate);
\r
600 void TIM1_SelectCCDMA(FunctionalState Newstate);
\r
601 void TIM1_CCPreloadControl(FunctionalState Newstate);
\r
602 void TIM1_OC1PreloadConfig(u16 TIM1_OCPreload);
\r
603 void TIM1_OC2PreloadConfig(u16 TIM1_OCPreload);
\r
604 void TIM1_OC3PreloadConfig(u16 TIM1_OCPreload);
\r
605 void TIM1_OC4PreloadConfig(u16 TIM1_OCPreload);
\r
606 void TIM1_OC1FastConfig(u16 TIM1_OCFast);
\r
607 void TIM1_OC2FastConfig(u16 TIM1_OCFast);
\r
608 void TIM1_OC3FastConfig(u16 TIM1_OCFast);
\r
609 void TIM1_OC4FastConfig(u16 TIM1_OCFast);
\r
610 void TIM1_GenerateEvent(u16 TIM1_EventSource);
\r
611 void TIM1_OC1PolarityConfig(u16 TIM1_OCPolarity);
\r
612 void TIM1_OC1NPolarityConfig(u16 TIM1_OCPolarity);
\r
613 void TIM1_OC2PolarityConfig(u16 TIM1_OCPolarity);
\r
614 void TIM1_OC2NPolarityConfig(u16 TIM1_OCPolarity);
\r
615 void TIM1_OC3PolarityConfig(u16 TIM1_OCPolarity);
\r
616 void TIM1_OC3NPolarityConfig(u16 TIM1_OCPolarity);
\r
617 void TIM1_OC4PolarityConfig(u16 TIM1_OCPolarity);
\r
618 void TIM1_CCxCmd(u16 TIM1_Channel, FunctionalState Newstate);
\r
619 void TIM1_CCxNCmd(u16 TIM1_Channel, FunctionalState Newstate);
\r
620 void TIM1_SelectOCxM(u16 TIM1_Channel, u16 TIM1_OCMode);
\r
621 void TIM1_SetAutoreload(u16 Autoreload);
\r
622 void TIM1_SetCompare1(u16 Compare1);
\r
623 void TIM1_SetCompare2(u16 Compare2);
\r
624 void TIM1_SetCompare3(u16 Compare3);
\r
625 void TIM1_SetCompare4(u16 Compare4);
\r
626 void TIM1_SetIC1Prescaler(u16 TIM1_IC1Prescaler);
\r
627 void TIM1_SetIC2Prescaler(u16 TIM1_IC2Prescaler);
\r
628 void TIM1_SetIC3Prescaler(u16 TIM1_IC3Prescaler);
\r
629 void TIM1_SetIC4Prescaler(u16 TIM1_IC4Prescaler);
\r
630 void TIM1_SetClockDivision(u16 TIM1_CKD);
\r
631 u16 TIM1_GetCapture1(void);
\r
632 u16 TIM1_GetCapture2(void);
\r
633 u16 TIM1_GetCapture3(void);
\r
634 u16 TIM1_GetCapture4(void);
\r
635 u16 TIM1_GetCounter(void);
\r
636 u16 TIM1_GetPrescaler(void);
\r
637 FlagStatus TIM1_GetFlagStatus(u16 TIM1_FLAG);
\r
638 void TIM1_ClearFlag(u16 TIM1_Flag);
\r
639 ITStatus TIM1_GetITStatus(u16 TIM1_IT);
\r
640 void TIM1_ClearITPendingBit(u16 TIM1_IT);
\r
642 #endif /*__STM32F10x_TIM1_H */
\r
644 /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
\r