]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim1.h
Add FreeRTOS-Plus directory.
[freertos] / FreeRTOS / Demo / Common / drivers / ST / STM32F10xFWLib / inc / stm32f10x_tim1.h
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
8 * History:\r
9 * 04/02/2007: V0.2\r
10 * mm/dd/yyyy: V0.1\r
11 * 09/29/2006: V0.01\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
20 \r
21 /* Define to prevent recursive inclusion -------------------------------------*/\r
22 #ifndef __STM32F10x_TIM1_H\r
23 #define __STM32F10x_TIM1_H\r
24 \r
25 /* Includes ------------------------------------------------------------------*/\r
26 #include "stm32f10x_map.h"\r
27 \r
28 /* Exported types ------------------------------------------------------------*/\r
29 \r
30 /* TIM1 Time Base Init structure definition */\r
31 typedef struct\r
32 {\r
33   u16 TIM1_Prescaler;\r
34   u16 TIM1_CounterMode;\r
35   u16 TIM1_Period;\r
36   u16 TIM1_ClockDivision;\r
37   u8 TIM1_RepetitionCounter;\r
38 } TIM1_TimeBaseInitTypeDef;\r
39 \r
40 /* TIM1 Output Compare Init structure definition */\r
41 typedef struct\r
42 {\r
43   u16 TIM1_OCMode;\r
44   u16 TIM1_OutputState;\r
45   u16 TIM1_OutputNState;\r
46   u16 TIM1_Pulse;\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
52 \r
53 /* TIM1 Input Capture Init structure definition */\r
54 typedef struct\r
55 {\r
56   u16 TIM1_Channel;\r
57   u16 TIM1_ICPolarity;\r
58   u16 TIM1_ICSelection;\r
59   u16 TIM1_ICPrescaler;\r
60   u8 TIM1_ICFilter;\r
61 } TIM1_ICInitTypeDef;\r
62 \r
63 /* BDTR structure definition */\r
64 typedef struct\r
65 {\r
66   u16 TIM1_OSSRState;\r
67   u16 TIM1_OSSIState;\r
68   u16 TIM1_LOCKLevel; \r
69   u16 TIM1_DeadTime;\r
70   u16 TIM1_Break;\r
71   u16 TIM1_BreakPolarity;\r
72   u16 TIM1_AutomaticOutput;\r
73 } TIM1_BDTRInitTypeDef;\r
74 \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
83 \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
90 \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
102 \r
103 #define IS_TIM1_OPM_MODE(MODE) ((MODE == TIM1_OPMode_Single) || \\r
104                                 (MODE == TIM1_OPMode_Repetitive))\r
105 \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
111 \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
116 \r
117 #define IS_TIM1_PWMI_CHANNEL(CHANNEL) ((CHANNEL == TIM1_Channel_1) || \\r
118                                        (CHANNEL == TIM1_Channel_2))\r
119 \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
127 \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
131 \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
138 \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
144 \r
145 /* TIM1 Output Compare Polarity ---------------------------------------------*/\r
146 #define TIM1_OCPolarity_High               ((u16)0x0000)\r
147 #define TIM1_OCPolarity_Low                ((u16)0x0001)\r
148 \r
149 #define IS_TIM1_OC_POLARITY(POLARITY) ((POLARITY == TIM1_OCPolarity_High) || \\r
150                                        (POLARITY == TIM1_OCPolarity_Low))\r
151 \r
152 /* TIM1 Output Compare N Polarity -------------------------------------------*/\r
153 #define TIM1_OCNPolarity_High              ((u16)0x0000)\r
154 #define TIM1_OCNPolarity_Low               ((u16)0x0001)\r
155 \r
156 #define IS_TIM1_OCN_POLARITY(POLARITY) ((POLARITY == TIM1_OCNPolarity_High) || \\r
157                                         (POLARITY == TIM1_OCNPolarity_Low))\r
158 \r
159 /* TIM1 Output Compare states -----------------------------------------------*/\r
160 #define TIM1_OutputState_Disable           ((u16)0x0000)\r
161 #define TIM1_OutputState_Enable            ((u16)0x0001)\r
162 \r
163 #define IS_TIM1_OUTPUT_STATE(STATE) ((STATE == TIM1_OutputState_Disable) || \\r
164                                      (STATE == TIM1_OutputState_Enable))\r
165 \r
166 /* TIM1 Output Compare N States ---------------------------------------------*/\r
167 #define TIM1_OutputNState_Disable          ((u16)0x0000)\r
168 #define TIM1_OutputNState_Enable           ((u16)0x0001)\r
169 \r
170 #define IS_TIM1_OUTPUTN_STATE(STATE) ((STATE == TIM1_OutputNState_Disable) || \\r
171                                       (STATE == TIM1_OutputNState_Enable))\r
172 \r
173 /* Break Input enable/disable -----------------------------------------------*/\r
174 #define TIM1_Break_Enable                  ((u16)0x1000)\r
175 #define TIM1_Break_Disable                 ((u16)0x0000)\r
176 \r
177 #define IS_TIM1_BREAK_STATE(STATE) ((STATE == TIM1_Break_Enable) || \\r
178                                     (STATE == TIM1_Break_Disable))\r
179 \r
180 /* Break Polarity -----------------------------------------------------------*/\r
181 #define TIM1_BreakPolarity_Low             ((u16)0x0000)\r
182 #define TIM1_BreakPolarity_High            ((u16)0x2000)\r
183 \r
184 #define IS_TIM1_BREAK_POLARITY(POLARITY) ((POLARITY == TIM1_BreakPolarity_Low) || \\r
185                                           (POLARITY == TIM1_BreakPolarity_High))\r
186 \r
187 /* TIM1 AOE Bit Set/Reset ---------------------------------------------------*/\r
188 #define TIM1_AutomaticOutput_Enable        ((u16)0x4000)\r
189 #define TIM1_AutomaticOutput_Disable       ((u16)0x0000)\r
190 \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
198 \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
203 \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
207 \r
208 #define IS_TIM1_OSSI_STATE(STATE) ((STATE == TIM1_OSSIState_Enable) || \\r
209                                    (STATE == TIM1_OSSIState_Disable))\r
210 \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
214 \r
215 #define IS_TIM1_OSSR_STATE(STATE) ((STATE == TIM1_OSSRState_Enable) || \\r
216                                    (STATE == TIM1_OSSRState_Disable))\r
217 \r
218 /* TIM1 Output Compare Idle State -------------------------------------------*/\r
219 #define TIM1_OCIdleState_Set               ((u16)0x0001)\r
220 #define TIM1_OCIdleState_Reset             ((u16)0x0000)\r
221 \r
222 #define IS_TIM1_OCIDLE_STATE(STATE) ((STATE == TIM1_OCIdleState_Set) || \\r
223                                      (STATE == TIM1_OCIdleState_Reset))\r
224 \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
228 \r
229 #define IS_TIM1_OCNIDLE_STATE(STATE) ((STATE == TIM1_OCNIdleState_Set) || \\r
230                                       (STATE == TIM1_OCNIdleState_Reset))\r
231 \r
232 /* TIM1 Input Capture Polarity ----------------------------------------------*/\r
233 #define  TIM1_ICPolarity_Rising            ((u16)0x0000)\r
234 #define  TIM1_ICPolarity_Falling           ((u16)0x0001)\r
235 \r
236 #define IS_TIM1_IC_POLARITY(POLARITY) ((POLARITY == TIM1_ICPolarity_Rising) || \\r
237                                        (POLARITY == TIM1_ICPolarity_Falling))\r
238 \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
243 \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
247 \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
253 \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
258                                          \r
259 /* TIM1 Input Capture Filer Value ---------------------------------------------*/\r
260 #define IS_TIM1_IC_FILTER(ICFILTER) (ICFILTER <= 0xF)                                              \r
261 \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
271 \r
272 #define IS_TIM1_IT(IT) (((IT & (u16)0xFF00) == 0x0000) && (IT != 0x0000))\r
273 \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
282 \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
303 \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
323 \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
343 \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
362 \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
371 \r
372 #define IS_TIM1_DMA_SOURCE(SOURCE) (((SOURCE & (u16)0x80FF) == 0x0000) && (SOURCE != 0x0000))\r
373 \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
379 \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
384 \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
394 \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
403 \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
408 \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
412 \r
413 /* TIM1 External Trigger Polarity -------------------------------------------*/\r
414 #define TIM1_ExtTRGPolarity_Inverted       ((u16)0x8000)\r
415 #define TIM1_ExtTRGPolarity_NonInverted    ((u16)0x0000)\r
416 \r
417 #define IS_TIM1_EXT_POLARITY(POLARITY) ((POLARITY == TIM1_ExtTRGPolarity_Inverted) || \\r
418                                         (POLARITY == TIM1_ExtTRGPolarity_NonInverted))\r
419 \r
420 /* TIM1 Prescaler Reload Mode -----------------------------------------------*/\r
421 #define TIM1_PSCReloadMode_Update          ((u16)0x0000)\r
422 #define TIM1_PSCReloadMode_Immediate       ((u16)0x0001)\r
423 \r
424 #define IS_TIM1_PRESCALER_RELOAD(RELOAD) ((RELOAD == TIM1_PSCReloadMode_Update) || \\r
425                                           (RELOAD == TIM1_PSCReloadMode_Immediate))\r
426 \r
427 /* TIM1 Forced Action -------------------------------------------------------*/\r
428 #define TIM1_ForcedAction_Active           ((u16)0x0050)\r
429 #define TIM1_ForcedAction_InActive         ((u16)0x0040)\r
430 \r
431 #define IS_TIM1_FORCED_ACTION(ACTION) ((ACTION == TIM1_ForcedAction_Active) || \\r
432                                        (ACTION == TIM1_ForcedAction_InActive))\r
433 \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
438 \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
442 \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
452 \r
453 #define IS_TIM1_EVENT_SOURCE(SOURCE) (((SOURCE & (u16)0xFF00) == 0x0000) && (SOURCE != 0x0000))\r
454                                       \r
455 \r
456 /* TIM1 Update Source -------------------------------------------------------*/\r
457 #define TIM1_UpdateSource_Global           ((u16)0x0000)\r
458 #define TIM1_UpdateSource_Regular          ((u16)0x0001)\r
459 \r
460 #define IS_TIM1_UPDATE_SOURCE(SOURCE) ((SOURCE == TIM1_UpdateSource_Global) || \\r
461                                        (SOURCE == TIM1_UpdateSource_Regular))\r
462 \r
463 /* TIM1 Ouput Compare Preload State ------------------------------------------*/\r
464 #define TIM1_OCPreload_Enable              ((u16)0x0001)\r
465 #define TIM1_OCPreload_Disable             ((u16)0x0000)\r
466 \r
467 #define IS_TIM1_OCPRELOAD_STATE(STATE) ((STATE == TIM1_OCPreload_Enable) || \\r
468                                         (STATE == TIM1_OCPreload_Disable))\r
469 \r
470 /* TIM1 Ouput Compare Fast State ---------------------------------------------*/\r
471 #define TIM1_OCFast_Enable                 ((u16)0x0001)\r
472 #define TIM1_OCFast_Disable                ((u16)0x0000)\r
473 \r
474 #define IS_TIM1_OCFAST_STATE(STATE) ((STATE == TIM1_OCFast_Enable) || \\r
475                                      (STATE == TIM1_OCFast_Disable))\r
476 \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
486 \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
495 \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
501 \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
506 \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
511 \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
515 \r
516 /* TIM1 Master Slave Mode ---------------------------------------------------*/\r
517 #define TIM1_MasterSlaveMode_Enable        ((u16)0x0001)\r
518 #define TIM1_MasterSlaveMode_Disable       ((u16)0x0000)\r
519 \r
520 #define IS_TIM1_MSM_STATE(STATE) ((STATE == TIM1_MasterSlaveMode_Enable) || \\r
521                                   (STATE == TIM1_MasterSlaveMode_Disable))\r
522 \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
536 \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
549 \r
550 #define IS_TIM1_CLEAR_FLAG(FLAG) (((FLAG & (u16)0xE100) == 0x0000) && (FLAG != 0x0000))\r
551                                   \r
552 \r
553 /* Exported macro ------------------------------------------------------------*/\r
554 /* Exported functions --------------------------------------------------------*/\r
555 \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
576                              u16 ExtTRGFilter);\r
577 void TIM1_ETRClockMode2Config(u16 TIM1_ExtTRGPrescaler, u16 TIM1_ExtTRGPolarity, \r
578                              u16 ExtTRGFilter);\r
579 void TIM1_ITRxExternalClockConfig(u16 TIM1_InputTriggerSource);\r
580 void TIM1_TIxExternalClockConfig(u16 TIM1_TIxExternalCLKSource, u16 TIM1_ICPolarity, \r
581                                 u8 ICFilter);\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
641 \r
642 #endif /*__STM32F10x_TIM1_H */\r
643 \r
644 /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/\r