/* USER CODE BEGIN 0 */void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim){if(htim->Instance == TIM3)/// Check Is Timer 3 had made interrupt{if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)// RISING from LOW to HIGH{
Value1 = HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_1);// Read the timer's value
__HAL_TIM_SET_COUNTER(&htim3,0x0000);// Reset timer's counter}elseif(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)// FALLING from HIGH to LOW{
Value2 = HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_2);// Read the timer's value}}}
...
int main(void){
...
/* USER CODE BEGIN 2 */
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1);
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_2);
...
/* USER CODE BEGIN 0 */
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM3)/// Check Is Timer 3 had made interrupt
{
if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) // RISING from LOW to HIGH
{
Value1 = HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_1); // Read the timer's value
__HAL_TIM_SET_COUNTER(&htim3, 0x0000); // Reset timer's counter
} else
if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) // FALLING from HIGH to LOW
{
Value2 = HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_2); // Read the timer's value
}
}
}
...
int main(void)
{
...
/* USER CODE BEGIN 2 */
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1);
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_2);
...