Перейти к содержанию
    

Таймеры в STM32

Здравствуйте!

 

Подскажите, пожалуйста, как можно организовать вызов таймера по приходу переднего фронта импульса, а по приходу переднего фронта второго импульса (возможно, на другой таймер ) - выключить таймер. Вообще, идея - померять время между двумя событиями. Может быть нужно использовать не таймер, а что-то другое? Никак не могу разобраться..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например так: нужный канал таймера настраиваете в режиме Input capture и запускаете таймер, по приходу внешнего сигнала в Capture&Compare register автоматически записывается значение таймера на момент прихода импульса и вызывается соответствующее прерывание. Аналогично второй импульс - по разности получается число тиков таймера между импульсами, ну и время соответственно.

Подробнее в RM, ну или в библиотеке пример есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо! примерно понятно. Только насчтёт примера, я так и не нашёл его нигде: ни на st.com, ни в keil'e, ни на сайте keil'a. И на promelec.ru тоже нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например так: нужный канал таймера настраиваете в режиме Input capture и запускаете таймер, по приходу внешнего сигнала в Capture&Compare register автоматически записывается значение таймера на момент прихода импульса и вызывается соответствующее прерывание. Аналогично второй импульс - по разности получается число тиков таймера между импульсами, ну и время соответственно.

Подробнее в RM, ну или в библиотеке пример есть.

 

А не проще на неком входе ждать импульс определенной полярности и по факту запускать Input capture - а уже по второму будет вызываться прерывание, т.е. захват запускать только один раз.

 

В библиотеке пытался найти подходящий пример, но что-то все было не то. В итоге пришлось по мануалу делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наимболее близкий пример "измерение частоты" в общей библиотеке

\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\TIM\InputCapture

 

espectro вариантов решения масса, хотя все они так или иначе завязываются на таймеры, я привел первый пришедший в голову. Ваш вариант может и прощее, однако он менее точен, т.к. между приходом первого импульса и запуском таймера может пройти некоторое время.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

espectro вариантов решения масса, хотя все они так или иначе завязываются на таймеры, я привел первый пришедший в голову. Ваш вариант может и прощее, однако он менее точен, т.к. между приходом первого импульса и запуском таймера может пройти некоторое время.

Согласен, все зависит от задачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...