Input Capture management functions.
More...
Input Capture management functions.
===============================================================================
Input Capture management functions
===============================================================================
===================================================================
TIM Driver: how to use it in Input Capture Mode
===================================================================
To use the Timer in Input Capture mode, the following steps are mandatory:
1. Enable TIM clock using RCC_APBxPeriphClockCmd(RCC_APBxPeriph_TIMx, ENABLE) function
2. Configure the TIM pins by configuring the corresponding GPIO pins
2. Configure the Time base unit as described in the first part of this driver,
if needed, else the Timer will run with the default configuration:
- Autoreload value = 0xFFFF
- Prescaler value = 0x0000
- Counter mode = Up counting
- Clock Division = TIM_CKD_DIV1
3. Fill the TIM_ICInitStruct with the desired parameters including:
- TIM Channel: TIM_Channel
- TIM Input Capture polarity: TIM_ICPolarity
- TIM Input Capture selection: TIM_ICSelection
- TIM Input Capture Prescaler: TIM_ICPrescaler
- TIM Input CApture filter value: TIM_ICFilter
4. Call TIM_ICInit(TIMx, &TIM_ICInitStruct) to configure the desired channel with the
corresponding configuration and to measure only frequency or duty cycle of the input signal,
or,
Call TIM_PWMIConfig(TIMx, &TIM_ICInitStruct) to configure the desired channels with the
corresponding configuration and to measure the frequency and the duty cycle of the input signal
5. Enable the NVIC or the DMA to read the measured frequency.
6. Enable the corresponding interrupt (or DMA request) to read the Captured value,
using the function TIM_ITConfig(TIMx, TIM_IT_CCx) (or TIM_DMA_Cmd(TIMx, TIM_DMA_CCx))
7. Call the TIM_Cmd(ENABLE) function to enable the TIM counter.
8. Use TIM_GetCapturex(TIMx); to read the captured value.
Note1: All other functions can be used separately to modify, if needed,
a specific feature of the Timer.
uint32_t TIM_GetCapture1 |
( |
TIM_TypeDef * |
TIMx | ) |
|
Gets the TIMx Input Capture 1 value.
- Parameters
-
TIMx,: | where x can be 1 to 14 except 6 and 7, to select the TIM peripheral. |
- Return values
-
Capture | Compare 1 Register value. |
uint32_t TIM_GetCapture2 |
( |
TIM_TypeDef * |
TIMx | ) |
|
Gets the TIMx Input Capture 2 value.
- Parameters
-
TIMx,: | where x can be 1, 2, 3, 4, 5, 8, 9 or 12 to select the TIM peripheral. |
- Return values
-
Capture | Compare 2 Register value. |
uint32_t TIM_GetCapture3 |
( |
TIM_TypeDef * |
TIMx | ) |
|
Gets the TIMx Input Capture 3 value.
- Parameters
-
TIMx,: | where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. |
- Return values
-
Capture | Compare 3 Register value. |
uint32_t TIM_GetCapture4 |
( |
TIM_TypeDef * |
TIMx | ) |
|
Gets the TIMx Input Capture 4 value.
- Parameters
-
TIMx,: | where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. |
- Return values
-
Capture | Compare 4 Register value. |
Initializes the TIM peripheral according to the specified parameters in the TIM_ICInitStruct.
- Parameters
-
TIMx,: | where x can be 1 to 14 except 6 and 7, to select the TIM peripheral. |
TIM_ICInitStruct,: | pointer to a TIM_ICInitTypeDef structure that contains the configuration information for the specified TIM peripheral. |
- Return values
-
Fills each TIM_ICInitStruct member with its default value.
- Parameters
-
TIM_ICInitStruct,: | pointer to a TIM_ICInitTypeDef structure which will be initialized. |
- Return values
-
Configures the TIM peripheral according to the specified parameters in the TIM_ICInitStruct to measure an external PWM signal.
- Parameters
-
TIMx,: | where x can be 1, 2, 3, 4, 5,8, 9 or 12 to select the TIM peripheral. |
TIM_ICInitStruct,: | pointer to a TIM_ICInitTypeDef structure that contains the configuration information for the specified TIM peripheral. |
- Return values
-
void TIM_SetIC1Prescaler |
( |
TIM_TypeDef * |
TIMx, |
|
|
uint16_t |
TIM_ICPSC |
|
) |
| |
Sets the TIMx Input Capture 1 prescaler.
- Parameters
-
TIMx,: | where x can be 1 to 14 except 6 and 7, to select the TIM peripheral. |
TIM_ICPSC,: | specifies the Input Capture1 prescaler new value. This parameter can be one of the following values:
- TIM_ICPSC_DIV1: no prescaler
- TIM_ICPSC_DIV2: capture is done once every 2 events
- TIM_ICPSC_DIV4: capture is done once every 4 events
- TIM_ICPSC_DIV8: capture is done once every 8 events
|
- Return values
-
void TIM_SetIC2Prescaler |
( |
TIM_TypeDef * |
TIMx, |
|
|
uint16_t |
TIM_ICPSC |
|
) |
| |
Sets the TIMx Input Capture 2 prescaler.
- Parameters
-
TIMx,: | where x can be 1, 2, 3, 4, 5, 8, 9 or 12 to select the TIM peripheral. |
TIM_ICPSC,: | specifies the Input Capture2 prescaler new value. This parameter can be one of the following values:
- TIM_ICPSC_DIV1: no prescaler
- TIM_ICPSC_DIV2: capture is done once every 2 events
- TIM_ICPSC_DIV4: capture is done once every 4 events
- TIM_ICPSC_DIV8: capture is done once every 8 events
|
- Return values
-
void TIM_SetIC3Prescaler |
( |
TIM_TypeDef * |
TIMx, |
|
|
uint16_t |
TIM_ICPSC |
|
) |
| |
Sets the TIMx Input Capture 3 prescaler.
- Parameters
-
TIMx,: | where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. |
TIM_ICPSC,: | specifies the Input Capture3 prescaler new value. This parameter can be one of the following values:
- TIM_ICPSC_DIV1: no prescaler
- TIM_ICPSC_DIV2: capture is done once every 2 events
- TIM_ICPSC_DIV4: capture is done once every 4 events
- TIM_ICPSC_DIV8: capture is done once every 8 events
|
- Return values
-
void TIM_SetIC4Prescaler |
( |
TIM_TypeDef * |
TIMx, |
|
|
uint16_t |
TIM_ICPSC |
|
) |
| |
Sets the TIMx Input Capture 4 prescaler.
- Parameters
-
TIMx,: | where x can be 1, 2, 3, 4, 5 or 8 to select the TIM peripheral. |
TIM_ICPSC,: | specifies the Input Capture4 prescaler new value. This parameter can be one of the following values:
- TIM_ICPSC_DIV1: no prescaler
- TIM_ICPSC_DIV2: capture is done once every 2 events
- TIM_ICPSC_DIV4: capture is done once every 4 events
- TIM_ICPSC_DIV8: capture is done once every 8 events
|
- Return values
-