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