Хочу сделать тахометр на STM32F103 и датчике холла 3144.
Настроил таймер 3 на режим зазвата:
Соответственно вывод с датчика холла подключил к выводу PA6.
Перед основным циклом запускаю таймер 3 и разрешаю захват:
HAL_TIM_Base_Start_IT(&htim3); HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1);
В main добавил коллбэк:
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { if( htim->Instance == TIM3 ) { if( htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1 ) { __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_UPDATE); period_width = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); //период сигнала } } }
Значение таймера в
period_width
Считывается.
Возникает несколько вопросов:
1)
__HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_UPDATE);
время таймера сбрасывается или мне его нужно сбрасывать?
2) По какой формуле вычислять обороты?
Что то теги совсем не работают(