kil00 0 15 ноября, 2011 Опубликовано 15 ноября, 2011 · Жалоба Здравствуйте! Подскажите, пожалуйста, как можно организовать вызов таймера по приходу переднего фронта импульса, а по приходу переднего фронта второго импульса (возможно, на другой таймер ) - выключить таймер. Вообще, идея - померять время между двумя событиями. Может быть нужно использовать не таймер, а что-то другое? Никак не могу разобраться.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 15 ноября, 2011 Опубликовано 15 ноября, 2011 · Жалоба Например так: нужный канал таймера настраиваете в режиме Input capture и запускаете таймер, по приходу внешнего сигнала в Capture&Compare register автоматически записывается значение таймера на момент прихода импульса и вызывается соответствующее прерывание. Аналогично второй импульс - по разности получается число тиков таймера между импульсами, ну и время соответственно. Подробнее в RM, ну или в библиотеке пример есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kil00 0 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Спасибо! примерно понятно. Только насчтёт примера, я так и не нашёл его нигде: ни на st.com, ни в keil'e, ни на сайте keil'a. И на promelec.ru тоже нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
espectro 0 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Например так: нужный канал таймера настраиваете в режиме Input capture и запускаете таймер, по приходу внешнего сигнала в Capture&Compare register автоматически записывается значение таймера на момент прихода импульса и вызывается соответствующее прерывание. Аналогично второй импульс - по разности получается число тиков таймера между импульсами, ну и время соответственно. Подробнее в RM, ну или в библиотеке пример есть. А не проще на неком входе ждать импульс определенной полярности и по факту запускать Input capture - а уже по второму будет вызываться прерывание, т.е. захват запускать только один раз. В библиотеке пытался найти подходящий пример, но что-то все было не то. В итоге пришлось по мануалу делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 18 ноября, 2011 Опубликовано 18 ноября, 2011 · Жалоба Наимболее близкий пример "измерение частоты" в общей библиотеке \STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\TIM\InputCapture espectro вариантов решения масса, хотя все они так или иначе завязываются на таймеры, я привел первый пришедший в голову. Ваш вариант может и прощее, однако он менее точен, т.к. между приходом первого импульса и запуском таймера может пройти некоторое время. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
espectro 0 18 ноября, 2011 Опубликовано 18 ноября, 2011 · Жалоба espectro вариантов решения масса, хотя все они так или иначе завязываются на таймеры, я привел первый пришедший в голову. Ваш вариант может и прощее, однако он менее точен, т.к. между приходом первого импульса и запуском таймера может пройти некоторое время. Согласен, все зависит от задачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться