1 |
582 |
jeremybenn |
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
|
2 |
|
|
* File Name : stm32f10x_tim.h
|
3 |
|
|
* Author : MCD Application Team
|
4 |
|
|
* Version : V2.0.1
|
5 |
|
|
* Date : 06/13/2008
|
6 |
|
|
* Description : This file contains all the functions prototypes for the
|
7 |
|
|
* TIM firmware library.
|
8 |
|
|
********************************************************************************
|
9 |
|
|
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
10 |
|
|
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
|
11 |
|
|
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
|
12 |
|
|
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
|
13 |
|
|
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
|
14 |
|
|
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
15 |
|
|
*******************************************************************************/
|
16 |
|
|
|
17 |
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
18 |
|
|
#ifndef __STM32F10x_TIM_H
|
19 |
|
|
#define __STM32F10x_TIM_H
|
20 |
|
|
|
21 |
|
|
/* Includes ------------------------------------------------------------------*/
|
22 |
|
|
#include "stm32f10x_map.h"
|
23 |
|
|
|
24 |
|
|
/* Exported types ------------------------------------------------------------*/
|
25 |
|
|
|
26 |
|
|
/* TIM Time Base Init structure definition */
|
27 |
|
|
typedef struct
|
28 |
|
|
{
|
29 |
|
|
u16 TIM_Prescaler;
|
30 |
|
|
u16 TIM_CounterMode;
|
31 |
|
|
u16 TIM_Period;
|
32 |
|
|
u16 TIM_ClockDivision;
|
33 |
|
|
u8 TIM_RepetitionCounter;
|
34 |
|
|
} TIM_TimeBaseInitTypeDef;
|
35 |
|
|
|
36 |
|
|
/* TIM Output Compare Init structure definition */
|
37 |
|
|
typedef struct
|
38 |
|
|
{
|
39 |
|
|
u16 TIM_OCMode;
|
40 |
|
|
u16 TIM_OutputState;
|
41 |
|
|
u16 TIM_OutputNState;
|
42 |
|
|
u16 TIM_Pulse;
|
43 |
|
|
u16 TIM_OCPolarity;
|
44 |
|
|
u16 TIM_OCNPolarity;
|
45 |
|
|
u16 TIM_OCIdleState;
|
46 |
|
|
u16 TIM_OCNIdleState;
|
47 |
|
|
} TIM_OCInitTypeDef;
|
48 |
|
|
|
49 |
|
|
/* TIM Input Capture Init structure definition */
|
50 |
|
|
typedef struct
|
51 |
|
|
{
|
52 |
|
|
u16 TIM_Channel;
|
53 |
|
|
u16 TIM_ICPolarity;
|
54 |
|
|
u16 TIM_ICSelection;
|
55 |
|
|
u16 TIM_ICPrescaler;
|
56 |
|
|
u16 TIM_ICFilter;
|
57 |
|
|
} TIM_ICInitTypeDef;
|
58 |
|
|
|
59 |
|
|
/* BDTR structure definition */
|
60 |
|
|
typedef struct
|
61 |
|
|
{
|
62 |
|
|
u16 TIM_OSSRState;
|
63 |
|
|
u16 TIM_OSSIState;
|
64 |
|
|
u16 TIM_LOCKLevel;
|
65 |
|
|
u16 TIM_DeadTime;
|
66 |
|
|
u16 TIM_Break;
|
67 |
|
|
u16 TIM_BreakPolarity;
|
68 |
|
|
u16 TIM_AutomaticOutput;
|
69 |
|
|
} TIM_BDTRInitTypeDef;
|
70 |
|
|
|
71 |
|
|
/* Exported constants --------------------------------------------------------*/
|
72 |
|
|
|
73 |
|
|
#define IS_TIM_ALL_PERIPH(PERIPH) (((*(u32*)&(PERIPH)) == TIM1_BASE) || \
|
74 |
|
|
((*(u32*)&(PERIPH)) == TIM2_BASE) || \
|
75 |
|
|
((*(u32*)&(PERIPH)) == TIM3_BASE) || \
|
76 |
|
|
((*(u32*)&(PERIPH)) == TIM4_BASE) || \
|
77 |
|
|
((*(u32*)&(PERIPH)) == TIM5_BASE) || \
|
78 |
|
|
((*(u32*)&(PERIPH)) == TIM6_BASE) || \
|
79 |
|
|
((*(u32*)&(PERIPH)) == TIM7_BASE) || \
|
80 |
|
|
((*(u32*)&(PERIPH)) == TIM8_BASE))
|
81 |
|
|
|
82 |
|
|
#define IS_TIM_18_PERIPH(PERIPH) (((*(u32*)&(PERIPH)) == TIM1_BASE) || \
|
83 |
|
|
((*(u32*)&(PERIPH)) == TIM8_BASE))
|
84 |
|
|
|
85 |
|
|
#define IS_TIM_123458_PERIPH(PERIPH) (((*(u32*)&(PERIPH)) == TIM1_BASE) || \
|
86 |
|
|
((*(u32*)&(PERIPH)) == TIM2_BASE) || \
|
87 |
|
|
((*(u32*)&(PERIPH)) == TIM3_BASE) || \
|
88 |
|
|
((*(u32*)&(PERIPH)) == TIM4_BASE) || \
|
89 |
|
|
((*(u32*)&(PERIPH)) == TIM5_BASE) || \
|
90 |
|
|
((*(u32*)&(PERIPH)) == TIM8_BASE))
|
91 |
|
|
|
92 |
|
|
/* TIM Output Compare and PWM modes -----------------------------------------*/
|
93 |
|
|
#define TIM_OCMode_Timing ((u16)0x0000)
|
94 |
|
|
#define TIM_OCMode_Active ((u16)0x0010)
|
95 |
|
|
#define TIM_OCMode_Inactive ((u16)0x0020)
|
96 |
|
|
#define TIM_OCMode_Toggle ((u16)0x0030)
|
97 |
|
|
#define TIM_OCMode_PWM1 ((u16)0x0060)
|
98 |
|
|
#define TIM_OCMode_PWM2 ((u16)0x0070)
|
99 |
|
|
|
100 |
|
|
#define IS_TIM_OC_MODE(MODE) (((MODE) == TIM_OCMode_Timing) || \
|
101 |
|
|
((MODE) == TIM_OCMode_Active) || \
|
102 |
|
|
((MODE) == TIM_OCMode_Inactive) || \
|
103 |
|
|
((MODE) == TIM_OCMode_Toggle)|| \
|
104 |
|
|
((MODE) == TIM_OCMode_PWM1) || \
|
105 |
|
|
((MODE) == TIM_OCMode_PWM2))
|
106 |
|
|
|
107 |
|
|
#define IS_TIM_OCM(MODE) (((MODE) == TIM_OCMode_Timing) || \
|
108 |
|
|
((MODE) == TIM_OCMode_Active) || \
|
109 |
|
|
((MODE) == TIM_OCMode_Inactive) || \
|
110 |
|
|
((MODE) == TIM_OCMode_Toggle)|| \
|
111 |
|
|
((MODE) == TIM_OCMode_PWM1) || \
|
112 |
|
|
((MODE) == TIM_OCMode_PWM2) || \
|
113 |
|
|
((MODE) == TIM_ForcedAction_Active) || \
|
114 |
|
|
((MODE) == TIM_ForcedAction_InActive))
|
115 |
|
|
/* TIM One Pulse Mode -------------------------------------------------------*/
|
116 |
|
|
#define TIM_OPMode_Single ((u16)0x0008)
|
117 |
|
|
#define TIM_OPMode_Repetitive ((u16)0x0000)
|
118 |
|
|
|
119 |
|
|
#define IS_TIM_OPM_MODE(MODE) (((MODE) == TIM_OPMode_Single) || \
|
120 |
|
|
((MODE) == TIM_OPMode_Repetitive))
|
121 |
|
|
|
122 |
|
|
/* TIM Channel -------------------------------------------------------------*/
|
123 |
|
|
#define TIM_Channel_1 ((u16)0x0000)
|
124 |
|
|
#define TIM_Channel_2 ((u16)0x0004)
|
125 |
|
|
#define TIM_Channel_3 ((u16)0x0008)
|
126 |
|
|
#define TIM_Channel_4 ((u16)0x000C)
|
127 |
|
|
|
128 |
|
|
#define IS_TIM_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \
|
129 |
|
|
((CHANNEL) == TIM_Channel_2) || \
|
130 |
|
|
((CHANNEL) == TIM_Channel_3) || \
|
131 |
|
|
((CHANNEL) == TIM_Channel_4))
|
132 |
|
|
|
133 |
|
|
#define IS_TIM_PWMI_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \
|
134 |
|
|
((CHANNEL) == TIM_Channel_2))
|
135 |
|
|
|
136 |
|
|
#define IS_TIM_COMPLEMENTARY_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \
|
137 |
|
|
((CHANNEL) == TIM_Channel_2) || \
|
138 |
|
|
((CHANNEL) == TIM_Channel_3))
|
139 |
|
|
/* TIM Clock Division CKD --------------------------------------------------*/
|
140 |
|
|
#define TIM_CKD_DIV1 ((u16)0x0000)
|
141 |
|
|
#define TIM_CKD_DIV2 ((u16)0x0100)
|
142 |
|
|
#define TIM_CKD_DIV4 ((u16)0x0200)
|
143 |
|
|
|
144 |
|
|
#define IS_TIM_CKD_DIV(DIV) (((DIV) == TIM_CKD_DIV1) || \
|
145 |
|
|
((DIV) == TIM_CKD_DIV2) || \
|
146 |
|
|
((DIV) == TIM_CKD_DIV4))
|
147 |
|
|
|
148 |
|
|
/* TIM Counter Mode --------------------------------------------------------*/
|
149 |
|
|
#define TIM_CounterMode_Up ((u16)0x0000)
|
150 |
|
|
#define TIM_CounterMode_Down ((u16)0x0010)
|
151 |
|
|
#define TIM_CounterMode_CenterAligned1 ((u16)0x0020)
|
152 |
|
|
#define TIM_CounterMode_CenterAligned2 ((u16)0x0040)
|
153 |
|
|
#define TIM_CounterMode_CenterAligned3 ((u16)0x0060)
|
154 |
|
|
|
155 |
|
|
#define IS_TIM_COUNTER_MODE(MODE) (((MODE) == TIM_CounterMode_Up) || \
|
156 |
|
|
((MODE) == TIM_CounterMode_Down) || \
|
157 |
|
|
((MODE) == TIM_CounterMode_CenterAligned1) || \
|
158 |
|
|
((MODE) == TIM_CounterMode_CenterAligned2) || \
|
159 |
|
|
((MODE) == TIM_CounterMode_CenterAligned3))
|
160 |
|
|
|
161 |
|
|
/* TIM Output Compare Polarity ---------------------------------------------*/
|
162 |
|
|
#define TIM_OCPolarity_High ((u16)0x0000)
|
163 |
|
|
#define TIM_OCPolarity_Low ((u16)0x0002)
|
164 |
|
|
|
165 |
|
|
#define IS_TIM_OC_POLARITY(POLARITY) (((POLARITY) == TIM_OCPolarity_High) || \
|
166 |
|
|
((POLARITY) == TIM_OCPolarity_Low))
|
167 |
|
|
|
168 |
|
|
/* TIM Output Compare N Polarity -------------------------------------------*/
|
169 |
|
|
#define TIM_OCNPolarity_High ((u16)0x0000)
|
170 |
|
|
#define TIM_OCNPolarity_Low ((u16)0x0008)
|
171 |
|
|
|
172 |
|
|
#define IS_TIM_OCN_POLARITY(POLARITY) (((POLARITY) == TIM_OCNPolarity_High) || \
|
173 |
|
|
((POLARITY) == TIM_OCNPolarity_Low))
|
174 |
|
|
|
175 |
|
|
/* TIM Output Compare states -----------------------------------------------*/
|
176 |
|
|
#define TIM_OutputState_Disable ((u16)0x0000)
|
177 |
|
|
#define TIM_OutputState_Enable ((u16)0x0001)
|
178 |
|
|
|
179 |
|
|
#define IS_TIM_OUTPUT_STATE(STATE) (((STATE) == TIM_OutputState_Disable) || \
|
180 |
|
|
((STATE) == TIM_OutputState_Enable))
|
181 |
|
|
|
182 |
|
|
/* TIM Output Compare N States ---------------------------------------------*/
|
183 |
|
|
#define TIM_OutputNState_Disable ((u16)0x0000)
|
184 |
|
|
#define TIM_OutputNState_Enable ((u16)0x0004)
|
185 |
|
|
|
186 |
|
|
#define IS_TIM_OUTPUTN_STATE(STATE) (((STATE) == TIM_OutputNState_Disable) || \
|
187 |
|
|
((STATE) == TIM_OutputNState_Enable))
|
188 |
|
|
|
189 |
|
|
/* TIM Capture Compare States -----------------------------------------------*/
|
190 |
|
|
#define TIM_CCx_Enable ((u16)0x0001)
|
191 |
|
|
#define TIM_CCx_Disable ((u16)0x0000)
|
192 |
|
|
|
193 |
|
|
#define IS_TIM_CCX(CCX) (((CCX) == TIM_CCx_Enable) || \
|
194 |
|
|
((CCX) == TIM_CCx_Disable))
|
195 |
|
|
|
196 |
|
|
/* TIM Capture Compare N States --------------------------------------------*/
|
197 |
|
|
#define TIM_CCxN_Enable ((u16)0x0004)
|
198 |
|
|
#define TIM_CCxN_Disable ((u16)0x0000)
|
199 |
|
|
|
200 |
|
|
#define IS_TIM_CCXN(CCXN) (((CCXN) == TIM_CCxN_Enable) || \
|
201 |
|
|
((CCXN) == TIM_CCxN_Disable))
|
202 |
|
|
|
203 |
|
|
/* Break Input enable/disable -----------------------------------------------*/
|
204 |
|
|
#define TIM_Break_Enable ((u16)0x1000)
|
205 |
|
|
#define TIM_Break_Disable ((u16)0x0000)
|
206 |
|
|
|
207 |
|
|
#define IS_TIM_BREAK_STATE(STATE) (((STATE) == TIM_Break_Enable) || \
|
208 |
|
|
((STATE) == TIM_Break_Disable))
|
209 |
|
|
|
210 |
|
|
/* Break Polarity -----------------------------------------------------------*/
|
211 |
|
|
#define TIM_BreakPolarity_Low ((u16)0x0000)
|
212 |
|
|
#define TIM_BreakPolarity_High ((u16)0x2000)
|
213 |
|
|
|
214 |
|
|
#define IS_TIM_BREAK_POLARITY(POLARITY) (((POLARITY) == TIM_BreakPolarity_Low) || \
|
215 |
|
|
((POLARITY) == TIM_BreakPolarity_High))
|
216 |
|
|
|
217 |
|
|
/* TIM AOE Bit Set/Reset ---------------------------------------------------*/
|
218 |
|
|
#define TIM_AutomaticOutput_Enable ((u16)0x4000)
|
219 |
|
|
#define TIM_AutomaticOutput_Disable ((u16)0x0000)
|
220 |
|
|
|
221 |
|
|
#define IS_TIM_AUTOMATIC_OUTPUT_STATE(STATE) (((STATE) == TIM_AutomaticOutput_Enable) || \
|
222 |
|
|
((STATE) == TIM_AutomaticOutput_Disable))
|
223 |
|
|
/* Lock levels --------------------------------------------------------------*/
|
224 |
|
|
#define TIM_LOCKLevel_OFF ((u16)0x0000)
|
225 |
|
|
#define TIM_LOCKLevel_1 ((u16)0x0100)
|
226 |
|
|
#define TIM_LOCKLevel_2 ((u16)0x0200)
|
227 |
|
|
#define TIM_LOCKLevel_3 ((u16)0x0300)
|
228 |
|
|
|
229 |
|
|
#define IS_TIM_LOCK_LEVEL(LEVEL) (((LEVEL) == TIM_LOCKLevel_OFF) || \
|
230 |
|
|
((LEVEL) == TIM_LOCKLevel_1) || \
|
231 |
|
|
((LEVEL) == TIM_LOCKLevel_2) || \
|
232 |
|
|
((LEVEL) == TIM_LOCKLevel_3))
|
233 |
|
|
|
234 |
|
|
/* OSSI: Off-State Selection for Idle mode states ---------------------------*/
|
235 |
|
|
#define TIM_OSSIState_Enable ((u16)0x0400)
|
236 |
|
|
#define TIM_OSSIState_Disable ((u16)0x0000)
|
237 |
|
|
|
238 |
|
|
#define IS_TIM_OSSI_STATE(STATE) (((STATE) == TIM_OSSIState_Enable) || \
|
239 |
|
|
((STATE) == TIM_OSSIState_Disable))
|
240 |
|
|
|
241 |
|
|
/* OSSR: Off-State Selection for Run mode states ----------------------------*/
|
242 |
|
|
#define TIM_OSSRState_Enable ((u16)0x0800)
|
243 |
|
|
#define TIM_OSSRState_Disable ((u16)0x0000)
|
244 |
|
|
|
245 |
|
|
#define IS_TIM_OSSR_STATE(STATE) (((STATE) == TIM_OSSRState_Enable) || \
|
246 |
|
|
((STATE) == TIM_OSSRState_Disable))
|
247 |
|
|
|
248 |
|
|
/* TIM Output Compare Idle State -------------------------------------------*/
|
249 |
|
|
#define TIM_OCIdleState_Set ((u16)0x0100)
|
250 |
|
|
#define TIM_OCIdleState_Reset ((u16)0x0000)
|
251 |
|
|
|
252 |
|
|
#define IS_TIM_OCIDLE_STATE(STATE) (((STATE) == TIM_OCIdleState_Set) || \
|
253 |
|
|
((STATE) == TIM_OCIdleState_Reset))
|
254 |
|
|
|
255 |
|
|
/* TIM Output Compare N Idle State -----------------------------------------*/
|
256 |
|
|
#define TIM_OCNIdleState_Set ((u16)0x0200)
|
257 |
|
|
#define TIM_OCNIdleState_Reset ((u16)0x0000)
|
258 |
|
|
|
259 |
|
|
#define IS_TIM_OCNIDLE_STATE(STATE) (((STATE) == TIM_OCNIdleState_Set) || \
|
260 |
|
|
((STATE) == TIM_OCNIdleState_Reset))
|
261 |
|
|
|
262 |
|
|
/* TIM Input Capture Polarity ----------------------------------------------*/
|
263 |
|
|
#define TIM_ICPolarity_Rising ((u16)0x0000)
|
264 |
|
|
#define TIM_ICPolarity_Falling ((u16)0x0002)
|
265 |
|
|
|
266 |
|
|
#define IS_TIM_IC_POLARITY(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising) || \
|
267 |
|
|
((POLARITY) == TIM_ICPolarity_Falling))
|
268 |
|
|
|
269 |
|
|
/* TIM Input Capture Selection ---------------------------------------------*/
|
270 |
|
|
#define TIM_ICSelection_DirectTI ((u16)0x0001)
|
271 |
|
|
#define TIM_ICSelection_IndirectTI ((u16)0x0002)
|
272 |
|
|
#define TIM_ICSelection_TRC ((u16)0x0003)
|
273 |
|
|
|
274 |
|
|
#define IS_TIM_IC_SELECTION(SELECTION) (((SELECTION) == TIM_ICSelection_DirectTI) || \
|
275 |
|
|
((SELECTION) == TIM_ICSelection_IndirectTI) || \
|
276 |
|
|
((SELECTION) == TIM_ICSelection_TRC))
|
277 |
|
|
|
278 |
|
|
/* TIM Input Capture Prescaler ---------------------------------------------*/
|
279 |
|
|
#define TIM_ICPSC_DIV1 ((u16)0x0000)
|
280 |
|
|
#define TIM_ICPSC_DIV2 ((u16)0x0004)
|
281 |
|
|
#define TIM_ICPSC_DIV4 ((u16)0x0008)
|
282 |
|
|
#define TIM_ICPSC_DIV8 ((u16)0x000C)
|
283 |
|
|
|
284 |
|
|
#define IS_TIM_IC_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ICPSC_DIV1) || \
|
285 |
|
|
((PRESCALER) == TIM_ICPSC_DIV2) || \
|
286 |
|
|
((PRESCALER) == TIM_ICPSC_DIV4) || \
|
287 |
|
|
((PRESCALER) == TIM_ICPSC_DIV8))
|
288 |
|
|
|
289 |
|
|
/* TIM interrupt sources ---------------------------------------------------*/
|
290 |
|
|
#define TIM_IT_Update ((u16)0x0001)
|
291 |
|
|
#define TIM_IT_CC1 ((u16)0x0002)
|
292 |
|
|
#define TIM_IT_CC2 ((u16)0x0004)
|
293 |
|
|
#define TIM_IT_CC3 ((u16)0x0008)
|
294 |
|
|
#define TIM_IT_CC4 ((u16)0x0010)
|
295 |
|
|
#define TIM_IT_COM ((u16)0x0020)
|
296 |
|
|
#define TIM_IT_Trigger ((u16)0x0040)
|
297 |
|
|
#define TIM_IT_Break ((u16)0x0080)
|
298 |
|
|
|
299 |
|
|
#define IS_TIM_IT(IT) ((((IT) & (u16)0xFF00) == 0x0000) && ((IT) != 0x0000))
|
300 |
|
|
|
301 |
|
|
#define IS_TIM_PERIPH_IT(PERIPH, TIM_IT) ((((((*(u32*)&(PERIPH)) == TIM2_BASE) || (((*(u32*)&(PERIPH)) == TIM3_BASE))||\
|
302 |
|
|
(((*(u32*)&(PERIPH)) == TIM4_BASE)) || (((*(u32*)&(PERIPH)) == TIM5_BASE))))&& \
|
303 |
|
|
(((TIM_IT) & (u16)0xFFA0) == 0x0000) && ((TIM_IT) != 0x0000)) ||\
|
304 |
|
|
(((((*(u32*)&(PERIPH)) == TIM1_BASE) || (((*(u32*)&(PERIPH)) == TIM8_BASE))))&& \
|
305 |
|
|
(((TIM_IT) & (u16)0xFF00) == 0x0000) && ((TIM_IT) != 0x0000)) ||\
|
306 |
|
|
(((((*(u32*)&(PERIPH)) == TIM6_BASE) || (((*(u32*)&(PERIPH)) == TIM7_BASE))))&& \
|
307 |
|
|
(((TIM_IT) & (u16)0xFFFE) == 0x0000) && ((TIM_IT) != 0x0000)))
|
308 |
|
|
|
309 |
|
|
#define IS_TIM_GET_IT(IT) (((IT) == TIM_IT_Update) || \
|
310 |
|
|
((IT) == TIM_IT_CC1) || \
|
311 |
|
|
((IT) == TIM_IT_CC2) || \
|
312 |
|
|
((IT) == TIM_IT_CC3) || \
|
313 |
|
|
((IT) == TIM_IT_CC4) || \
|
314 |
|
|
((IT) == TIM_IT_COM) || \
|
315 |
|
|
((IT) == TIM_IT_Trigger) || \
|
316 |
|
|
((IT) == TIM_IT_Break))
|
317 |
|
|
|
318 |
|
|
/* TIM DMA Base address ----------------------------------------------------*/
|
319 |
|
|
#define TIM_DMABase_CR1 ((u16)0x0000)
|
320 |
|
|
#define TIM_DMABase_CR2 ((u16)0x0001)
|
321 |
|
|
#define TIM_DMABase_SMCR ((u16)0x0002)
|
322 |
|
|
#define TIM_DMABase_DIER ((u16)0x0003)
|
323 |
|
|
#define TIM_DMABase_SR ((u16)0x0004)
|
324 |
|
|
#define TIM_DMABase_EGR ((u16)0x0005)
|
325 |
|
|
#define TIM_DMABase_CCMR1 ((u16)0x0006)
|
326 |
|
|
#define TIM_DMABase_CCMR2 ((u16)0x0007)
|
327 |
|
|
#define TIM_DMABase_CCER ((u16)0x0008)
|
328 |
|
|
#define TIM_DMABase_CNT ((u16)0x0009)
|
329 |
|
|
#define TIM_DMABase_PSC ((u16)0x000A)
|
330 |
|
|
#define TIM_DMABase_ARR ((u16)0x000B)
|
331 |
|
|
#define TIM_DMABase_RCR ((u16)0x000C)
|
332 |
|
|
#define TIM_DMABase_CCR1 ((u16)0x000D)
|
333 |
|
|
#define TIM_DMABase_CCR2 ((u16)0x000E)
|
334 |
|
|
#define TIM_DMABase_CCR3 ((u16)0x000F)
|
335 |
|
|
#define TIM_DMABase_CCR4 ((u16)0x0010)
|
336 |
|
|
#define TIM_DMABase_BDTR ((u16)0x0011)
|
337 |
|
|
#define TIM_DMABase_DCR ((u16)0x0012)
|
338 |
|
|
|
339 |
|
|
#define IS_TIM_DMA_BASE(BASE) (((BASE) == TIM_DMABase_CR1) || \
|
340 |
|
|
((BASE) == TIM_DMABase_CR2) || \
|
341 |
|
|
((BASE) == TIM_DMABase_SMCR) || \
|
342 |
|
|
((BASE) == TIM_DMABase_DIER) || \
|
343 |
|
|
((BASE) == TIM_DMABase_SR) || \
|
344 |
|
|
((BASE) == TIM_DMABase_EGR) || \
|
345 |
|
|
((BASE) == TIM_DMABase_CCMR1) || \
|
346 |
|
|
((BASE) == TIM_DMABase_CCMR2) || \
|
347 |
|
|
((BASE) == TIM_DMABase_CCER) || \
|
348 |
|
|
((BASE) == TIM_DMABase_CNT) || \
|
349 |
|
|
((BASE) == TIM_DMABase_PSC) || \
|
350 |
|
|
((BASE) == TIM_DMABase_ARR) || \
|
351 |
|
|
((BASE) == TIM_DMABase_RCR) || \
|
352 |
|
|
((BASE) == TIM_DMABase_CCR1) || \
|
353 |
|
|
((BASE) == TIM_DMABase_CCR2) || \
|
354 |
|
|
((BASE) == TIM_DMABase_CCR3) || \
|
355 |
|
|
((BASE) == TIM_DMABase_CCR4) || \
|
356 |
|
|
((BASE) == TIM_DMABase_BDTR) || \
|
357 |
|
|
((BASE) == TIM_DMABase_DCR))
|
358 |
|
|
|
359 |
|
|
/* TIM DMA Burst Length ----------------------------------------------------*/
|
360 |
|
|
#define TIM_DMABurstLength_1Byte ((u16)0x0000)
|
361 |
|
|
#define TIM_DMABurstLength_2Bytes ((u16)0x0100)
|
362 |
|
|
#define TIM_DMABurstLength_3Bytes ((u16)0x0200)
|
363 |
|
|
#define TIM_DMABurstLength_4Bytes ((u16)0x0300)
|
364 |
|
|
#define TIM_DMABurstLength_5Bytes ((u16)0x0400)
|
365 |
|
|
#define TIM_DMABurstLength_6Bytes ((u16)0x0500)
|
366 |
|
|
#define TIM_DMABurstLength_7Bytes ((u16)0x0600)
|
367 |
|
|
#define TIM_DMABurstLength_8Bytes ((u16)0x0700)
|
368 |
|
|
#define TIM_DMABurstLength_9Bytes ((u16)0x0800)
|
369 |
|
|
#define TIM_DMABurstLength_10Bytes ((u16)0x0900)
|
370 |
|
|
#define TIM_DMABurstLength_11Bytes ((u16)0x0A00)
|
371 |
|
|
#define TIM_DMABurstLength_12Bytes ((u16)0x0B00)
|
372 |
|
|
#define TIM_DMABurstLength_13Bytes ((u16)0x0C00)
|
373 |
|
|
#define TIM_DMABurstLength_14Bytes ((u16)0x0D00)
|
374 |
|
|
#define TIM_DMABurstLength_15Bytes ((u16)0x0E00)
|
375 |
|
|
#define TIM_DMABurstLength_16Bytes ((u16)0x0F00)
|
376 |
|
|
#define TIM_DMABurstLength_17Bytes ((u16)0x1000)
|
377 |
|
|
#define TIM_DMABurstLength_18Bytes ((u16)0x1100)
|
378 |
|
|
|
379 |
|
|
#define IS_TIM_DMA_LENGTH(LENGTH) (((LENGTH) == TIM_DMABurstLength_1Byte) || \
|
380 |
|
|
((LENGTH) == TIM_DMABurstLength_2Bytes) || \
|
381 |
|
|
((LENGTH) == TIM_DMABurstLength_3Bytes) || \
|
382 |
|
|
((LENGTH) == TIM_DMABurstLength_4Bytes) || \
|
383 |
|
|
((LENGTH) == TIM_DMABurstLength_5Bytes) || \
|
384 |
|
|
((LENGTH) == TIM_DMABurstLength_6Bytes) || \
|
385 |
|
|
((LENGTH) == TIM_DMABurstLength_7Bytes) || \
|
386 |
|
|
((LENGTH) == TIM_DMABurstLength_8Bytes) || \
|
387 |
|
|
((LENGTH) == TIM_DMABurstLength_9Bytes) || \
|
388 |
|
|
((LENGTH) == TIM_DMABurstLength_10Bytes) || \
|
389 |
|
|
((LENGTH) == TIM_DMABurstLength_11Bytes) || \
|
390 |
|
|
((LENGTH) == TIM_DMABurstLength_12Bytes) || \
|
391 |
|
|
((LENGTH) == TIM_DMABurstLength_13Bytes) || \
|
392 |
|
|
((LENGTH) == TIM_DMABurstLength_14Bytes) || \
|
393 |
|
|
((LENGTH) == TIM_DMABurstLength_15Bytes) || \
|
394 |
|
|
((LENGTH) == TIM_DMABurstLength_16Bytes) || \
|
395 |
|
|
((LENGTH) == TIM_DMABurstLength_17Bytes) || \
|
396 |
|
|
((LENGTH) == TIM_DMABurstLength_18Bytes))
|
397 |
|
|
|
398 |
|
|
/* TIM DMA sources ---------------------------------------------------------*/
|
399 |
|
|
#define TIM_DMA_Update ((u16)0x0100)
|
400 |
|
|
#define TIM_DMA_CC1 ((u16)0x0200)
|
401 |
|
|
#define TIM_DMA_CC2 ((u16)0x0400)
|
402 |
|
|
#define TIM_DMA_CC3 ((u16)0x0800)
|
403 |
|
|
#define TIM_DMA_CC4 ((u16)0x1000)
|
404 |
|
|
#define TIM_DMA_COM ((u16)0x2000)
|
405 |
|
|
#define TIM_DMA_Trigger ((u16)0x4000)
|
406 |
|
|
|
407 |
|
|
#define IS_TIM_DMA_SOURCE(SOURCE) ((((SOURCE) & (u16)0x80FF) == 0x0000) && ((SOURCE) != 0x0000))
|
408 |
|
|
|
409 |
|
|
#define IS_TIM_PERIPH_DMA(PERIPH, SOURCE) ((((((*(u32*)&(PERIPH)) == TIM2_BASE) || (((*(u32*)&(PERIPH)) == TIM3_BASE))||\
|
410 |
|
|
(((*(u32*)&(PERIPH)) == TIM4_BASE)) || (((*(u32*)&(PERIPH)) == TIM5_BASE))))&& \
|
411 |
|
|
(((SOURCE) & (u16)0xA0FF) == 0x0000) && ((SOURCE) != 0x0000)) ||\
|
412 |
|
|
(((((*(u32*)&(PERIPH)) == TIM1_BASE) || (((*(u32*)&(PERIPH)) == TIM8_BASE))))&& \
|
413 |
|
|
(((SOURCE) & (u16)0x80FF) == 0x0000) && ((SOURCE) != 0x0000)) ||\
|
414 |
|
|
(((((*(u32*)&(PERIPH)) == TIM6_BASE) || (((*(u32*)&(PERIPH)) == TIM7_BASE))))&& \
|
415 |
|
|
(((SOURCE) & (u16)0xFEFF) == 0x0000) && ((SOURCE) != 0x0000)))
|
416 |
|
|
|
417 |
|
|
/* TIM External Trigger Prescaler ------------------------------------------*/
|
418 |
|
|
#define TIM_ExtTRGPSC_OFF ((u16)0x0000)
|
419 |
|
|
#define TIM_ExtTRGPSC_DIV2 ((u16)0x1000)
|
420 |
|
|
#define TIM_ExtTRGPSC_DIV4 ((u16)0x2000)
|
421 |
|
|
#define TIM_ExtTRGPSC_DIV8 ((u16)0x3000)
|
422 |
|
|
|
423 |
|
|
#define IS_TIM_EXT_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ExtTRGPSC_OFF) || \
|
424 |
|
|
((PRESCALER) == TIM_ExtTRGPSC_DIV2) || \
|
425 |
|
|
((PRESCALER) == TIM_ExtTRGPSC_DIV4) || \
|
426 |
|
|
((PRESCALER) == TIM_ExtTRGPSC_DIV8))
|
427 |
|
|
|
428 |
|
|
/* TIM Internal Trigger Selection ------------------------------------------*/
|
429 |
|
|
#define TIM_TS_ITR0 ((u16)0x0000)
|
430 |
|
|
#define TIM_TS_ITR1 ((u16)0x0010)
|
431 |
|
|
#define TIM_TS_ITR2 ((u16)0x0020)
|
432 |
|
|
#define TIM_TS_ITR3 ((u16)0x0030)
|
433 |
|
|
#define TIM_TS_TI1F_ED ((u16)0x0040)
|
434 |
|
|
#define TIM_TS_TI1FP1 ((u16)0x0050)
|
435 |
|
|
#define TIM_TS_TI2FP2 ((u16)0x0060)
|
436 |
|
|
#define TIM_TS_ETRF ((u16)0x0070)
|
437 |
|
|
|
438 |
|
|
#define IS_TIM_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \
|
439 |
|
|
((SELECTION) == TIM_TS_ITR1) || \
|
440 |
|
|
((SELECTION) == TIM_TS_ITR2) || \
|
441 |
|
|
((SELECTION) == TIM_TS_ITR3) || \
|
442 |
|
|
((SELECTION) == TIM_TS_TI1F_ED) || \
|
443 |
|
|
((SELECTION) == TIM_TS_TI1FP1) || \
|
444 |
|
|
((SELECTION) == TIM_TS_TI2FP2) || \
|
445 |
|
|
((SELECTION) == TIM_TS_ETRF))
|
446 |
|
|
|
447 |
|
|
#define IS_TIM_INTERNAL_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \
|
448 |
|
|
((SELECTION) == TIM_TS_ITR1) || \
|
449 |
|
|
((SELECTION) == TIM_TS_ITR2) || \
|
450 |
|
|
((SELECTION) == TIM_TS_ITR3))
|
451 |
|
|
|
452 |
|
|
/* TIM TIx External Clock Source -------------------------------------------*/
|
453 |
|
|
#define TIM_TIxExternalCLK1Source_TI1 ((u16)0x0050)
|
454 |
|
|
#define TIM_TIxExternalCLK1Source_TI2 ((u16)0x0060)
|
455 |
|
|
#define TIM_TIxExternalCLK1Source_TI1ED ((u16)0x0040)
|
456 |
|
|
|
457 |
|
|
#define IS_TIM_TIXCLK_SOURCE(SOURCE) (((SOURCE) == TIM_TIxExternalCLK1Source_TI1) || \
|
458 |
|
|
((SOURCE) == TIM_TIxExternalCLK1Source_TI2) || \
|
459 |
|
|
((SOURCE) == TIM_TIxExternalCLK1Source_TI1ED))
|
460 |
|
|
|
461 |
|
|
/* TIM External Trigger Polarity -------------------------------------------*/
|
462 |
|
|
#define TIM_ExtTRGPolarity_Inverted ((u16)0x8000)
|
463 |
|
|
#define TIM_ExtTRGPolarity_NonInverted ((u16)0x0000)
|
464 |
|
|
|
465 |
|
|
#define IS_TIM_EXT_POLARITY(POLARITY) (((POLARITY) == TIM_ExtTRGPolarity_Inverted) || \
|
466 |
|
|
((POLARITY) == TIM_ExtTRGPolarity_NonInverted))
|
467 |
|
|
|
468 |
|
|
/* TIM Prescaler Reload Mode -----------------------------------------------*/
|
469 |
|
|
#define TIM_PSCReloadMode_Update ((u16)0x0000)
|
470 |
|
|
#define TIM_PSCReloadMode_Immediate ((u16)0x0001)
|
471 |
|
|
|
472 |
|
|
#define IS_TIM_PRESCALER_RELOAD(RELOAD) (((RELOAD) == TIM_PSCReloadMode_Update) || \
|
473 |
|
|
((RELOAD) == TIM_PSCReloadMode_Immediate))
|
474 |
|
|
|
475 |
|
|
/* TIM Forced Action -------------------------------------------------------*/
|
476 |
|
|
#define TIM_ForcedAction_Active ((u16)0x0050)
|
477 |
|
|
#define TIM_ForcedAction_InActive ((u16)0x0040)
|
478 |
|
|
|
479 |
|
|
#define IS_TIM_FORCED_ACTION(ACTION) (((ACTION) == TIM_ForcedAction_Active) || \
|
480 |
|
|
((ACTION) == TIM_ForcedAction_InActive))
|
481 |
|
|
|
482 |
|
|
/* TIM Encoder Mode --------------------------------------------------------*/
|
483 |
|
|
#define TIM_EncoderMode_TI1 ((u16)0x0001)
|
484 |
|
|
#define TIM_EncoderMode_TI2 ((u16)0x0002)
|
485 |
|
|
#define TIM_EncoderMode_TI12 ((u16)0x0003)
|
486 |
|
|
|
487 |
|
|
#define IS_TIM_ENCODER_MODE(MODE) (((MODE) == TIM_EncoderMode_TI1) || \
|
488 |
|
|
((MODE) == TIM_EncoderMode_TI2) || \
|
489 |
|
|
((MODE) == TIM_EncoderMode_TI12))
|
490 |
|
|
|
491 |
|
|
/* TIM Event Source --------------------------------------------------------*/
|
492 |
|
|
#define TIM_EventSource_Update ((u16)0x0001)
|
493 |
|
|
#define TIM_EventSource_CC1 ((u16)0x0002)
|
494 |
|
|
#define TIM_EventSource_CC2 ((u16)0x0004)
|
495 |
|
|
#define TIM_EventSource_CC3 ((u16)0x0008)
|
496 |
|
|
#define TIM_EventSource_CC4 ((u16)0x0010)
|
497 |
|
|
#define TIM_EventSource_COM ((u16)0x0020)
|
498 |
|
|
#define TIM_EventSource_Trigger ((u16)0x0040)
|
499 |
|
|
#define TIM_EventSource_Break ((u16)0x0080)
|
500 |
|
|
|
501 |
|
|
#define IS_TIM_EVENT_SOURCE(SOURCE) ((((SOURCE) & (u16)0xFF00) == 0x0000) && ((SOURCE) != 0x0000))
|
502 |
|
|
|
503 |
|
|
#define IS_TIM_PERIPH_EVENT(PERIPH, EVENT) ((((((*(u32*)&(PERIPH)) == TIM2_BASE) || (((*(u32*)&(PERIPH)) == TIM3_BASE))||\
|
504 |
|
|
(((*(u32*)&(PERIPH)) == TIM4_BASE)) || (((*(u32*)&(PERIPH)) == TIM5_BASE))))&& \
|
505 |
|
|
(((EVENT) & (u16)0xFFA0) == 0x0000) && ((EVENT) != 0x0000)) ||\
|
506 |
|
|
(((((*(u32*)&(PERIPH)) == TIM1_BASE) || (((*(u32*)&(PERIPH)) == TIM8_BASE))))&& \
|
507 |
|
|
(((EVENT) & (u16)0xFF00) == 0x0000) && ((EVENT) != 0x0000)) ||\
|
508 |
|
|
(((((*(u32*)&(PERIPH)) == TIM6_BASE) || (((*(u32*)&(PERIPH)) == TIM7_BASE))))&& \
|
509 |
|
|
(((EVENT) & (u16)0xFFFE) == 0x0000) && ((EVENT) != 0x0000)))
|
510 |
|
|
|
511 |
|
|
/* TIM Update Source --------------------------------------------------------*/
|
512 |
|
|
#define TIM_UpdateSource_Global ((u16)0x0000)
|
513 |
|
|
#define TIM_UpdateSource_Regular ((u16)0x0001)
|
514 |
|
|
|
515 |
|
|
#define IS_TIM_UPDATE_SOURCE(SOURCE) (((SOURCE) == TIM_UpdateSource_Global) || \
|
516 |
|
|
((SOURCE) == TIM_UpdateSource_Regular))
|
517 |
|
|
|
518 |
|
|
/* TIM Ouput Compare Preload State ------------------------------------------*/
|
519 |
|
|
#define TIM_OCPreload_Enable ((u16)0x0008)
|
520 |
|
|
#define TIM_OCPreload_Disable ((u16)0x0000)
|
521 |
|
|
|
522 |
|
|
#define IS_TIM_OCPRELOAD_STATE(STATE) (((STATE) == TIM_OCPreload_Enable) || \
|
523 |
|
|
((STATE) == TIM_OCPreload_Disable))
|
524 |
|
|
|
525 |
|
|
/* TIM Ouput Compare Fast State ---------------------------------------------*/
|
526 |
|
|
#define TIM_OCFast_Enable ((u16)0x0004)
|
527 |
|
|
#define TIM_OCFast_Disable ((u16)0x0000)
|
528 |
|
|
|
529 |
|
|
#define IS_TIM_OCFAST_STATE(STATE) (((STATE) == TIM_OCFast_Enable) || \
|
530 |
|
|
((STATE) == TIM_OCFast_Disable))
|
531 |
|
|
|
532 |
|
|
/* TIM Ouput Compare Clear State --------------------------------------------*/
|
533 |
|
|
#define TIM_OCClear_Enable ((u16)0x0080)
|
534 |
|
|
#define TIM_OCClear_Disable ((u16)0x0000)
|
535 |
|
|
|
536 |
|
|
#define IS_TIM_OCCLEAR_STATE(STATE) (((STATE) == TIM_OCClear_Enable) || \
|
537 |
|
|
((STATE) == TIM_OCClear_Disable))
|
538 |
|
|
|
539 |
|
|
/* TIM Trigger Output Source ------------------------------------------------*/
|
540 |
|
|
#define TIM_TRGOSource_Reset ((u16)0x0000)
|
541 |
|
|
#define TIM_TRGOSource_Enable ((u16)0x0010)
|
542 |
|
|
#define TIM_TRGOSource_Update ((u16)0x0020)
|
543 |
|
|
#define TIM_TRGOSource_OC1 ((u16)0x0030)
|
544 |
|
|
#define TIM_TRGOSource_OC1Ref ((u16)0x0040)
|
545 |
|
|
#define TIM_TRGOSource_OC2Ref ((u16)0x0050)
|
546 |
|
|
#define TIM_TRGOSource_OC3Ref ((u16)0x0060)
|
547 |
|
|
#define TIM_TRGOSource_OC4Ref ((u16)0x0070)
|
548 |
|
|
|
549 |
|
|
#define IS_TIM_TRGO_SOURCE(SOURCE) (((SOURCE) == TIM_TRGOSource_Reset) || \
|
550 |
|
|
((SOURCE) == TIM_TRGOSource_Enable) || \
|
551 |
|
|
((SOURCE) == TIM_TRGOSource_Update) || \
|
552 |
|
|
((SOURCE) == TIM_TRGOSource_OC1) || \
|
553 |
|
|
((SOURCE) == TIM_TRGOSource_OC1Ref) || \
|
554 |
|
|
((SOURCE) == TIM_TRGOSource_OC2Ref) || \
|
555 |
|
|
((SOURCE) == TIM_TRGOSource_OC3Ref) || \
|
556 |
|
|
((SOURCE) == TIM_TRGOSource_OC4Ref))
|
557 |
|
|
|
558 |
|
|
#define IS_TIM_PERIPH_TRGO(PERIPH, TRGO) (((((*(u32*)&(PERIPH)) == TIM2_BASE)||(((*(u32*)&(PERIPH)) == TIM1_BASE))||\
|
559 |
|
|
(((*(u32*)&(PERIPH)) == TIM3_BASE))||(((*(u32*)&(PERIPH)) == TIM4_BASE))|| \
|
560 |
|
|
(((*(u32*)&(PERIPH)) == TIM6_BASE))||(((*(u32*)&(PERIPH)) == TIM7_BASE))|| \
|
561 |
|
|
(((*(u32*)&(PERIPH)) == TIM5_BASE))||(((*(u32*)&(PERIPH)) == TIM8_BASE))) && \
|
562 |
|
|
((TRGO) == TIM_TRGOSource_Reset)) ||\
|
563 |
|
|
((((*(u32*)&(PERIPH)) == TIM2_BASE)||(((*(u32*)&(PERIPH)) == TIM1_BASE))||\
|
564 |
|
|
(((*(u32*)&(PERIPH)) == TIM6_BASE))||(((*(u32*)&(PERIPH)) == TIM7_BASE))|| \
|
565 |
|
|
(((*(u32*)&(PERIPH)) == TIM3_BASE))||(((*(u32*)&(PERIPH)) == TIM4_BASE))|| \
|
566 |
|
|
(((*(u32*)&(PERIPH)) == TIM5_BASE))||(((*(u32*)&(PERIPH)) == TIM8_BASE))) && \
|
567 |
|
|
((TRGO) == TIM_TRGOSource_Enable)) ||\
|
568 |
|
|
((((*(u32*)&(PERIPH)) == TIM2_BASE)||(((*(u32*)&(PERIPH)) == TIM1_BASE))||\
|
569 |
|
|
(((*(u32*)&(PERIPH)) == TIM6_BASE))||(((*(u32*)&(PERIPH)) == TIM7_BASE))|| \
|
570 |
|
|
(((*(u32*)&(PERIPH)) == TIM3_BASE))||(((*(u32*)&(PERIPH)) == TIM4_BASE))|| \
|
571 |
|
|
(((*(u32*)&(PERIPH)) == TIM5_BASE))||(((*(u32*)&(PERIPH)) == TIM8_BASE))) && \
|
572 |
|
|
((TRGO) == TIM_TRGOSource_Update)) ||\
|
573 |
|
|
((((*(u32*)&(PERIPH)) == TIM2_BASE)||(((*(u32*)&(PERIPH)) == TIM1_BASE))||\
|
574 |
|
|
(((*(u32*)&(PERIPH)) == TIM3_BASE))||(((*(u32*)&(PERIPH)) == TIM4_BASE))|| \
|
575 |
|
|
(((*(u32*)&(PERIPH)) == TIM5_BASE))||(((*(u32*)&(PERIPH)) == TIM8_BASE))) && \
|
576 |
|
|
((TRGO) == TIM_TRGOSource_OC1)) ||\
|
577 |
|
|
((((*(u32*)&(PERIPH)) == TIM2_BASE)||(((*(u32*)&(PERIPH)) == TIM1_BASE))||\
|
578 |
|
|
(((*(u32*)&(PERIPH)) == TIM3_BASE))||(((*(u32*)&(PERIPH)) == TIM4_BASE))|| \
|
579 |
|
|
(((*(u32*)&(PERIPH)) == TIM5_BASE))||(((*(u32*)&(PERIPH)) == TIM8_BASE))) && \
|
580 |
|
|
((TRGO) == TIM_TRGOSource_OC1Ref)) ||\
|
581 |
|
|
((((*(u32*)&(PERIPH)) == TIM2_BASE)||(((*(u32*)&(PERIPH)) == TIM1_BASE))||\
|
582 |
|
|
(((*(u32*)&(PERIPH)) == TIM3_BASE))||(((*(u32*)&(PERIPH)) == TIM4_BASE))|| \
|
583 |
|
|
(((*(u32*)&(PERIPH)) == TIM5_BASE))||(((*(u32*)&(PERIPH)) == TIM8_BASE))) && \
|
584 |
|
|
((TRGO) == TIM_TRGOSource_OC2Ref)) ||\
|
585 |
|
|
((((*(u32*)&(PERIPH)) == TIM2_BASE)||(((*(u32*)&(PERIPH)) == TIM1_BASE))||\
|
586 |
|
|
(((*(u32*)&(PERIPH)) == TIM3_BASE))||(((*(u32*)&(PERIPH)) == TIM4_BASE))|| \
|
587 |
|
|
(((*(u32*)&(PERIPH)) == TIM5_BASE))||(((*(u32*)&(PERIPH)) == TIM8_BASE))) && \
|
588 |
|
|
((TRGO) == TIM_TRGOSource_OC3Ref)) ||\
|
589 |
|
|
((((*(u32*)&(PERIPH)) == TIM2_BASE)||(((*(u32*)&(PERIPH)) == TIM1_BASE))||\
|
590 |
|
|
(((*(u32*)&(PERIPH)) == TIM3_BASE))||(((*(u32*)&(PERIPH)) == TIM4_BASE))|| \
|
591 |
|
|
(((*(u32*)&(PERIPH)) == TIM5_BASE))||(((*(u32*)&(PERIPH)) == TIM8_BASE))) && \
|
592 |
|
|
((TRGO) == TIM_TRGOSource_OC4Ref)))
|
593 |
|
|
|
594 |
|
|
/* TIM Slave Mode ----------------------------------------------------------*/
|
595 |
|
|
#define TIM_SlaveMode_Reset ((u16)0x0004)
|
596 |
|
|
#define TIM_SlaveMode_Gated ((u16)0x0005)
|
597 |
|
|
#define TIM_SlaveMode_Trigger ((u16)0x0006)
|
598 |
|
|
#define TIM_SlaveMode_External1 ((u16)0x0007)
|
599 |
|
|
|
600 |
|
|
#define IS_TIM_SLAVE_MODE(MODE) (((MODE) == TIM_SlaveMode_Reset) || \
|
601 |
|
|
((MODE) == TIM_SlaveMode_Gated) || \
|
602 |
|
|
((MODE) == TIM_SlaveMode_Trigger) || \
|
603 |
|
|
((MODE) == TIM_SlaveMode_External1))
|
604 |
|
|
|
605 |
|
|
/* TIM Master Slave Mode ---------------------------------------------------*/
|
606 |
|
|
#define TIM_MasterSlaveMode_Enable ((u16)0x0080)
|
607 |
|
|
#define TIM_MasterSlaveMode_Disable ((u16)0x0000)
|
608 |
|
|
|
609 |
|
|
#define IS_TIM_MSM_STATE(STATE) (((STATE) == TIM_MasterSlaveMode_Enable) || \
|
610 |
|
|
((STATE) == TIM_MasterSlaveMode_Disable))
|
611 |
|
|
|
612 |
|
|
/* TIM Flags ---------------------------------------------------------------*/
|
613 |
|
|
#define TIM_FLAG_Update ((u16)0x0001)
|
614 |
|
|
#define TIM_FLAG_CC1 ((u16)0x0002)
|
615 |
|
|
#define TIM_FLAG_CC2 ((u16)0x0004)
|
616 |
|
|
#define TIM_FLAG_CC3 ((u16)0x0008)
|
617 |
|
|
#define TIM_FLAG_CC4 ((u16)0x0010)
|
618 |
|
|
#define TIM_FLAG_COM ((u16)0x0020)
|
619 |
|
|
#define TIM_FLAG_Trigger ((u16)0x0040)
|
620 |
|
|
#define TIM_FLAG_Break ((u16)0x0080)
|
621 |
|
|
#define TIM_FLAG_CC1OF ((u16)0x0200)
|
622 |
|
|
#define TIM_FLAG_CC2OF ((u16)0x0400)
|
623 |
|
|
#define TIM_FLAG_CC3OF ((u16)0x0800)
|
624 |
|
|
#define TIM_FLAG_CC4OF ((u16)0x1000)
|
625 |
|
|
|
626 |
|
|
#define IS_TIM_GET_FLAG(FLAG) (((FLAG) == TIM_FLAG_Update) || \
|
627 |
|
|
((FLAG) == TIM_FLAG_CC1) || \
|
628 |
|
|
((FLAG) == TIM_FLAG_CC2) || \
|
629 |
|
|
((FLAG) == TIM_FLAG_CC3) || \
|
630 |
|
|
((FLAG) == TIM_FLAG_CC4) || \
|
631 |
|
|
((FLAG) == TIM_FLAG_COM) || \
|
632 |
|
|
((FLAG) == TIM_FLAG_Trigger) || \
|
633 |
|
|
((FLAG) == TIM_FLAG_Break) || \
|
634 |
|
|
((FLAG) == TIM_FLAG_CC1OF) || \
|
635 |
|
|
((FLAG) == TIM_FLAG_CC2OF) || \
|
636 |
|
|
((FLAG) == TIM_FLAG_CC3OF) || \
|
637 |
|
|
((FLAG) == TIM_FLAG_CC4OF))
|
638 |
|
|
|
639 |
|
|
#define IS_TIM_CLEAR_FLAG(PERIPH, TIM_FLAG) ((((((*(u32*)&(PERIPH)) == TIM2_BASE) || (((*(u32*)&(PERIPH)) == TIM3_BASE))||\
|
640 |
|
|
(((*(u32*)&(PERIPH)) == TIM4_BASE)) || (((*(u32*)&(PERIPH)) == TIM5_BASE))))&& \
|
641 |
|
|
(((TIM_FLAG) & (u16)0xE1A0) == 0x0000) && ((TIM_FLAG) != 0x0000)) ||\
|
642 |
|
|
(((((*(u32*)&(PERIPH)) == TIM1_BASE) || (((*(u32*)&(PERIPH)) == TIM8_BASE))))&& \
|
643 |
|
|
(((TIM_FLAG) & (u16)0xE100) == 0x0000) && ((TIM_FLAG) != 0x0000)) ||\
|
644 |
|
|
(((((*(u32*)&(PERIPH)) == TIM6_BASE) || (((*(u32*)&(PERIPH)) == TIM7_BASE))))&& \
|
645 |
|
|
(((TIM_FLAG) & (u16)0xFFFE) == 0x0000) && ((TIM_FLAG) != 0x0000)))
|
646 |
|
|
|
647 |
|
|
#define IS_TIM_PERIPH_FLAG(PERIPH, TIM_FLAG) (((((*(u32*)&(PERIPH))==TIM2_BASE) || ((*(u32*)&(PERIPH)) == TIM3_BASE) ||\
|
648 |
|
|
((*(u32*)&(PERIPH)) == TIM4_BASE) || ((*(u32*)&(PERIPH))==TIM5_BASE) || \
|
649 |
|
|
((*(u32*)&(PERIPH))==TIM1_BASE) || ((*(u32*)&(PERIPH))==TIM8_BASE)) &&\
|
650 |
|
|
(((TIM_FLAG) == TIM_FLAG_CC1) || ((TIM_FLAG) == TIM_FLAG_CC2) ||\
|
651 |
|
|
((TIM_FLAG) == TIM_FLAG_CC3) || ((TIM_FLAG) == TIM_FLAG_CC4) || \
|
652 |
|
|
((TIM_FLAG) == TIM_FLAG_Trigger))) ||\
|
653 |
|
|
((((*(u32*)&(PERIPH))==TIM2_BASE) || ((*(u32*)&(PERIPH)) == TIM3_BASE) || \
|
654 |
|
|
((*(u32*)&(PERIPH)) == TIM4_BASE) || ((*(u32*)&(PERIPH))==TIM5_BASE) ||\
|
655 |
|
|
((*(u32*)&(PERIPH))==TIM1_BASE)|| ((*(u32*)&(PERIPH))==TIM8_BASE) || \
|
656 |
|
|
((*(u32*)&(PERIPH))==TIM7_BASE) || ((*(u32*)&(PERIPH))==TIM6_BASE)) && \
|
657 |
|
|
(((TIM_FLAG) == TIM_FLAG_Update))) ||\
|
658 |
|
|
((((*(u32*)&(PERIPH))==TIM1_BASE) || ((*(u32*)&(PERIPH)) == TIM8_BASE)) &&\
|
659 |
|
|
(((TIM_FLAG) == TIM_FLAG_COM) || ((TIM_FLAG) == TIM_FLAG_Break))) ||\
|
660 |
|
|
((((*(u32*)&(PERIPH))==TIM2_BASE) || ((*(u32*)&(PERIPH)) == TIM3_BASE) || \
|
661 |
|
|
((*(u32*)&(PERIPH)) == TIM4_BASE) || ((*(u32*)&(PERIPH))==TIM5_BASE) || \
|
662 |
|
|
((*(u32*)&(PERIPH))==TIM1_BASE) || ((*(u32*)&(PERIPH))==TIM8_BASE)) &&\
|
663 |
|
|
(((TIM_FLAG) == TIM_FLAG_CC1OF) || ((TIM_FLAG) == TIM_FLAG_CC2OF) ||\
|
664 |
|
|
((TIM_FLAG) == TIM_FLAG_CC3OF) || ((TIM_FLAG) == TIM_FLAG_CC4OF))))
|
665 |
|
|
|
666 |
|
|
/* TIM Input Capture Filer Value ---------------------------------------------*/
|
667 |
|
|
#define IS_TIM_IC_FILTER(ICFILTER) ((ICFILTER) <= 0xF)
|
668 |
|
|
|
669 |
|
|
/* TIM External Trigger Filter -----------------------------------------------*/
|
670 |
|
|
#define IS_TIM_EXT_FILTER(EXTFILTER) ((EXTFILTER) <= 0xF)
|
671 |
|
|
|
672 |
|
|
/* Exported macro ------------------------------------------------------------*/
|
673 |
|
|
/* Exported functions --------------------------------------------------------*/
|
674 |
|
|
|
675 |
|
|
void TIM_DeInit(TIM_TypeDef* TIMx);
|
676 |
|
|
void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
|
677 |
|
|
void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
|
678 |
|
|
void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
|
679 |
|
|
void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
|
680 |
|
|
void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
|
681 |
|
|
void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
|
682 |
|
|
void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
|
683 |
|
|
void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct);
|
684 |
|
|
void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
|
685 |
|
|
void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct);
|
686 |
|
|
void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct);
|
687 |
|
|
void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct);
|
688 |
|
|
void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);
|
689 |
|
|
void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState);
|
690 |
|
|
void TIM_ITConfig(TIM_TypeDef* TIMx, u16 TIM_IT, FunctionalState NewState);
|
691 |
|
|
void TIM_GenerateEvent(TIM_TypeDef* TIMx, u16 TIM_EventSource);
|
692 |
|
|
void TIM_DMAConfig(TIM_TypeDef* TIMx, u16 TIM_DMABase, u16 TIM_DMABurstLength);
|
693 |
|
|
void TIM_DMACmd(TIM_TypeDef* TIMx, u16 TIM_DMASource, FunctionalState NewState);
|
694 |
|
|
void TIM_InternalClockConfig(TIM_TypeDef* TIMx);
|
695 |
|
|
void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, u16 TIM_InputTriggerSource);
|
696 |
|
|
void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, u16 TIM_TIxExternalCLKSource,
|
697 |
|
|
u16 TIM_ICPolarity, u16 ICFilter);
|
698 |
|
|
void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, u16 TIM_ExtTRGPrescaler, u16 TIM_ExtTRGPolarity,
|
699 |
|
|
u16 ExtTRGFilter);
|
700 |
|
|
void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, u16 TIM_ExtTRGPrescaler,
|
701 |
|
|
u16 TIM_ExtTRGPolarity, u16 ExtTRGFilter);
|
702 |
|
|
void TIM_ETRConfig(TIM_TypeDef* TIMx, u16 TIM_ExtTRGPrescaler, u16 TIM_ExtTRGPolarity,
|
703 |
|
|
u16 ExtTRGFilter);
|
704 |
|
|
void TIM_PrescalerConfig(TIM_TypeDef* TIMx, u16 Prescaler, u16 TIM_PSCReloadMode);
|
705 |
|
|
void TIM_CounterModeConfig(TIM_TypeDef* TIMx, u16 TIM_CounterMode);
|
706 |
|
|
void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, u16 TIM_InputTriggerSource);
|
707 |
|
|
void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, u16 TIM_EncoderMode,
|
708 |
|
|
u16 TIM_IC1Polarity, u16 TIM_IC2Polarity);
|
709 |
|
|
void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction);
|
710 |
|
|
void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction);
|
711 |
|
|
void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction);
|
712 |
|
|
void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction);
|
713 |
|
|
void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);
|
714 |
|
|
void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState);
|
715 |
|
|
void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState);
|
716 |
|
|
void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState);
|
717 |
|
|
void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload);
|
718 |
|
|
void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload);
|
719 |
|
|
void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload);
|
720 |
|
|
void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload);
|
721 |
|
|
void TIM_OC1FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast);
|
722 |
|
|
void TIM_OC2FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast);
|
723 |
|
|
void TIM_OC3FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast);
|
724 |
|
|
void TIM_OC4FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast);
|
725 |
|
|
void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, u16 TIM_OCClear);
|
726 |
|
|
void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, u16 TIM_OCClear);
|
727 |
|
|
void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, u16 TIM_OCClear);
|
728 |
|
|
void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, u16 TIM_OCClear);
|
729 |
|
|
void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity);
|
730 |
|
|
void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCNPolarity);
|
731 |
|
|
void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity);
|
732 |
|
|
void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCNPolarity);
|
733 |
|
|
void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity);
|
734 |
|
|
void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCNPolarity);
|
735 |
|
|
void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity);
|
736 |
|
|
void TIM_CCxCmd(TIM_TypeDef* TIMx, u16 TIM_Channel, u16 TIM_CCx);
|
737 |
|
|
void TIM_CCxNCmd(TIM_TypeDef* TIMx, u16 TIM_Channel, u16 TIM_CCxN);
|
738 |
|
|
void TIM_SelectOCxM(TIM_TypeDef* TIMx, u16 TIM_Channel, u16 TIM_OCMode);
|
739 |
|
|
void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState);
|
740 |
|
|
void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, u16 TIM_UpdateSource);
|
741 |
|
|
void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState);
|
742 |
|
|
void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, u16 TIM_OPMode);
|
743 |
|
|
void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, u16 TIM_TRGOSource);
|
744 |
|
|
void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, u16 TIM_SlaveMode);
|
745 |
|
|
void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, u16 TIM_MasterSlaveMode);
|
746 |
|
|
void TIM_SetCounter(TIM_TypeDef* TIMx, u16 Counter);
|
747 |
|
|
void TIM_SetAutoreload(TIM_TypeDef* TIMx, u16 Autoreload);
|
748 |
|
|
void TIM_SetCompare1(TIM_TypeDef* TIMx, u16 Compare1);
|
749 |
|
|
void TIM_SetCompare2(TIM_TypeDef* TIMx, u16 Compare2);
|
750 |
|
|
void TIM_SetCompare3(TIM_TypeDef* TIMx, u16 Compare3);
|
751 |
|
|
void TIM_SetCompare4(TIM_TypeDef* TIMx, u16 Compare4);
|
752 |
|
|
void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, u16 TIM_ICPSC);
|
753 |
|
|
void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, u16 TIM_ICPSC);
|
754 |
|
|
void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, u16 TIM_ICPSC);
|
755 |
|
|
void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, u16 TIM_ICPSC);
|
756 |
|
|
void TIM_SetClockDivision(TIM_TypeDef* TIMx, u16 TIM_CKD);
|
757 |
|
|
u16 TIM_GetCapture1(TIM_TypeDef* TIMx);
|
758 |
|
|
u16 TIM_GetCapture2(TIM_TypeDef* TIMx);
|
759 |
|
|
u16 TIM_GetCapture3(TIM_TypeDef* TIMx);
|
760 |
|
|
u16 TIM_GetCapture4(TIM_TypeDef* TIMx);
|
761 |
|
|
u16 TIM_GetCounter(TIM_TypeDef* TIMx);
|
762 |
|
|
u16 TIM_GetPrescaler(TIM_TypeDef* TIMx);
|
763 |
|
|
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, u16 TIM_FLAG);
|
764 |
|
|
void TIM_ClearFlag(TIM_TypeDef* TIMx, u16 TIM_FLAG);
|
765 |
|
|
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, u16 TIM_IT);
|
766 |
|
|
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, u16 TIM_IT);
|
767 |
|
|
|
768 |
|
|
#endif /*__STM32F10x_TIM_H */
|
769 |
|
|
|
770 |
|
|
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
|
771 |
|
|
|
772 |
|
|
|
773 |
|
|
|
774 |
|
|
|
775 |
|
|
|
776 |
|
|
|
777 |
|
|
|
778 |
|
|
|