Top.Mail.Ru
Уведомления
Очистить все

[Решено] Захват частоты и периода импульсов STM32F4

(@ruslan)
Level 1

Всем доброго времени суток! Вообщем прочитал в документации что есть возможность захвата значения частоты и периода при помощью таймера. Использую таймер 3. Настройки: Slave Mode: Reser Mode, Trigger Source: TI1FP1, Clock Source: Interman Clock, Channel1: Input Capture direcr mode.

Так же включил прерывания.
Запускаю таймер
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1);
Как пришёл импульс в прерываниях снимаю значения.
temp = HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_1);
Это как я понимаю я получаю частоту, как замерить период? Почему значения частоты плавают? По осциллографу всё нормально!

Цитата
Создатель темы Размещено : 21.03.2016 15:16
Aveal
(@aveal)
Top level Admin

Привет!

Читая захваченное значение ты получаешь количество "тиков" таймера, которые он сделал с момента обнуления. То есть в теории работает так - при переднем фронте таймер обнуляется, при приходе заднего фронта ты считываешь количество "тиков" и переводишь их в секунды, зная на какой частоте работает таймер.

ОтветитьЦитата
Размещено : 21.03.2016 15:39
(@ruslan)
Level 1

Это я понимаю, я не понимаю как сделать так чтобы таймер сначала посчитал от переднего фронта до заднего, а потом от заднего до заднего (или от переднего до переднего). У меня получилось от заднего до заднего, а как от переднего до переднего не понимаю (( Скину Вам проект на почту, если есть время посмотрите пожалуйста...

ОтветитьЦитата
Создатель темы Размещено : 21.03.2016 18:12
Aveal
(@aveal)
Top level Admin

Ну он либо будет отлавливать задние, либо передние, либо и те и другие. Если надо к примеру у ШИМ сигнала измерять частоту и скважность, то настраиваются два канала, один из них захватывает передний фронт, а другой задний, при этом сигнал берут с одного входа.

ОтветитьЦитата
Размещено : 21.03.2016 21:08
(@ruslan)
Level 1

Ошибся, не получается по переднего фронта до заднего... А не могли бы Вы дать пример захвата сигнала от переднего до заднего фронта?

ОтветитьЦитата
Создатель темы Размещено : 22.03.2016 12:20
Aveal
(@aveal)
Top level Admin

У меня есть только для stm32f10x и без Cube - на SPL, подойдет? В принципе, вместе с драйвером HAL идет большое количество примеров для разных плат, возможно там есть подходящий для F4.

ОтветитьЦитата
Размещено : 22.03.2016 23:58
Поделиться: