📄 stm32f10x_tim.lst
字号:
198
199 /* Reset the Output Compare Bits */
200 tmpccmrx &= Tab_OCModeMask[TIM_OCInitStruct->TIM_Channel];
201
202 /* Set the Output Polarity level */
203 tmpccer &= Tab_PolarityMask[TIM_OCInitStruct->TIM_Channel];
204
205 if (TIM_OCInitStruct->TIM_Channel == TIM_Channel_1)
206 {
207 /* Disable the Channel 1: Reset the CCE Bit */
208 TIMx->CCER &= CCER_CC1E_Reset;
209
210 /* Select the Output Compare Mode */
211 tmpccmrx |= TIM_OCInitStruct->TIM_OCMode;
212
213 /* Set the Capture Compare Register value */
214 TIMx->CCR1 = TIM_OCInitStruct->TIM_Pulse;
215
216 /* Set the Capture Compare Enable Bit */
217 tmpccer |= CCER_CC1E_Set;
218
219 /* Set the Capture Compare Polarity */
220 tmpccer |= TIM_OCInitStruct->TIM_OCPolarity;
221 }
222 else /* TIM_Channel_2 */
223 {
224 /* Disable the Channel 2: Reset the CCE Bit */
225 TIMx->CCER &= CCER_CC2E_Reset;
226
227 /* Select the Output Compare Mode */
228 tmpccmrx |= (u32)TIM_OCInitStruct->TIM_OCMode << 8;
229
230 /* Set the Capture Compare Register value */
231 TIMx->CCR2 = TIM_OCInitStruct->TIM_Pulse;
232
233 /* Set the Capture Compare Enable Bit */
234 tmpccer |= CCER_CC2E_Set;
235
236 /* Set the Capture Compare Polarity */
237 tmpccer |= (u32)TIM_OCInitStruct->TIM_OCPolarity << 4;
238 }
239
240 TIMx->CCMR1 = (u16)tmpccmrx;
241 }
242 else
243 {
244 if ((TIM_OCInitStruct->TIM_Channel == TIM_Channel_3) ||
245 (TIM_OCInitStruct->TIM_Channel == TIM_Channel_4))
246 {
247 tmpccmrx = TIMx->CCMR2;
248
249 /* Reset the Output Compare Bits */
250 tmpccmrx &= Tab_OCModeMask[TIM_OCInitStruct->TIM_Channel];
251
252 /* Set the Output Polarity level */
253 tmpccer &= Tab_PolarityMask[TIM_OCInitStruct->TIM_Channel];
254
255 if (TIM_OCInitStruct->TIM_Channel == TIM_Channel_3)
256 {
257 /* Disable the Channel 3: Reset the CCE Bit */
258 TIMx->CCER &= CCER_CC3E_Reset;
259
260 /* Select the Output Compare Mode */
261 tmpccmrx |= TIM_OCInitStruct->TIM_OCMode;
262
263 /* Set the Capture Compare Register value */
264 TIMx->CCR3 = TIM_OCInitStruct->TIM_Pulse;
265
266 /* Set the Capture Compare Enable Bit */
267 tmpccer |= CCER_CC3E_Set;
268
269 /* Set the Capture Compare Polarity */
270 tmpccer |= (u32)TIM_OCInitStruct->TIM_OCPolarity << 8;
271 }
272 else /* TIM_Channel_4 */
273 {
274 /* Disable the Channel 4: Reset the CCE Bit */
275 TIMx->CCER &= CCER_CC4E_Reset;
276
277 /* Select the Output Compare Mode */
278 tmpccmrx |= (u32)TIM_OCInitStruct->TIM_OCMode << 8;
279
280 /* Set the Capture Compare Register value */
281 TIMx->CCR4 = TIM_OCInitStruct->TIM_Pulse;
282
283 /* Set the Capture Compare Enable Bit */
284 tmpccer |= CCER_CC4E_Set;
285
286 /* Set the Capture Compare Polarity */
287 tmpccer |= (u32)TIM_OCInitStruct->TIM_OCPolarity << 12;
288 }
289
290 TIMx->CCMR2 = (u16)tmpccmrx;
291 }
292 }
293
294 TIMx->CCER = (u16)tmpccer;
295 }
296
297 /*******************************************************************************
298 * Function Name : TIM_ICInit
299 * Description : Initializes the TIMx peripheral according to the specified
300 * parameters in the TIM_ICInitStruct.
301 * Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
302 * - TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure
303 * that contains the configuration information for the specified
304 * TIM peripheral.
305 * Output : None
306 * Return : None
307 *******************************************************************************/
308 void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
309 {
310 /* Check the parameters */
311 assert_param(IS_TIM_IC_MODE(TIM_ICInitStruct->TIM_ICMode));
312 assert_param(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel));
313 assert_param(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity));
314 assert_param(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection));
315 assert_param(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler));
316 assert_param(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter));
317
318 if (TIM_ICInitStruct->TIM_ICMode == TIM_ICMode_ICAP)
319 {
320 if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
321 {
322 /* TI1 Configuration */
323 TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
324 TIM_ICInitStruct->TIM_ICSelection,
325 TIM_ICInitStruct->TIM_ICFilter);
326
327 /* Set the Input Capture Prescaler value */
328 TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
329 }
330 else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2)
331 {
332 /* TI2 Configuration */
333 TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
334 TIM_ICInitStruct->TIM_ICSelection,
335 TIM_ICInitStruct->TIM_ICFilter);
336
337 /* Set the Input Capture Prescaler value */
338 TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
339 }
340 else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3)
341 {
342 /* TI3 Configuration */
343 TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
344 TIM_ICInitStruct->TIM_ICSelection,
345 TIM_ICInitStruct->TIM_ICFilter);
346
347 /* Set the Input Capture Prescaler value */
348 TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
349 }
350 else /* TIM_Channel_4 */
351 {
352 /* TI4 Configuration */
353 TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
354 TIM_ICInitStruct->TIM_ICSelection,
355 TIM_ICInitStruct->TIM_ICFilter);
356
357 /* Set the Input Capture Prescaler value */
358 TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
359 }
360 }
361 else
362 {
363 PWMI_Config(TIMx, TIM_ICInitStruct);
364 }
365 }
366
367 /*******************************************************************************
368 * Function Name : TIM_TimeBaseStructInit
369 * Description : Fills each TIM_TimeBaseInitStruct member with its default value.
370 * Input : - TIM_TimeBaseInitStruct: pointer to a TIM_TimeBaseInitTypeDef
371 * structure which will be initialized.
372 * Output : None
373 * Return : None
374 *******************************************************************************/
375 void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
376 {
377 /* Set the default configuration */
378 TIM_TimeBaseInitStruct->TIM_Period = TIM_Period_Reset_Mask;
379 TIM_TimeBaseInitStruct->TIM_Prescaler = TIM_Prescaler_Reset_Mask;
380 TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1;
381 TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up;
382 }
383
384 /*******************************************************************************
385 * Function Name : TIM_OCStructInit
386 * Description : Fills each TIM_OCInitStruct member with its default value.
387 * Input : - TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure
388 * which will be initialized.
389 * Output : None
390 * Return : None
391 *******************************************************************************/
392 void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct)
393 {
394 /* Set the default configuration */
395 TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing;
396 TIM_OCInitStruct->TIM_Channel = TIM_Channel_1;
397 TIM_OCInitStruct->TIM_Pulse = TIM_Pulse_Reset_Mask;
398 TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High;
399 }
400
401 /*******************************************************************************
402 * Function Name : TIM_ICStructInit
403 * Description : Fills each TIM_InitStruct member with its default value.
404 * Input : - TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure
405 * which will be initialized.
406 * Output : None
407 * Return : None
408 *******************************************************************************/
409 void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct)
410 {
411 /* Set the default configuration */
412 TIM_ICInitStruct->TIM_ICMode = TIM_ICMode_ICAP;
413 TIM_ICInitStruct->TIM_Channel = TIM_Channel_1;
414 TIM_ICInitStruct->TIM_ICPolarity = TIM_ICPolarity_Rising;
415 TIM_ICInitStruct->TIM_ICSelection = TIM_ICSelection_DirectTI;
416 TIM_ICInitStruct->TIM_ICPrescaler = TIM_ICPSC_DIV1;
417 TIM_ICInitStruct->TIM_ICFilter = TIM_ICFilter_Mask;
418 }
419
420 /*******************************************************************************
421 * Function Name : TIM_Cmd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -