Найти тему
Будни инженера

Режим захвата AVR

О режимах работы таймеров микроконтроллеров AVR я рассказывал здесь. Сегодня чуть подробнее о режиме захвата.

Суть этого режима заключается в сохранении содержимого счётного регистра таймера в какой-то момент времени. Запоминание содержимого происходит либо по сигналу с входа микроконтроллера, либо от сигнала с выхода встроенного компаратора (устройства сравнения).

Обычно этот режим используют, когда надо измерить длительность какого-то внешнего процесса. Например, микроконтроллер запускает какой-то процесс - подаёт сигнал на какой-то выход, и одновременно запускает таймер в режиме захвата. Завершение процесса определяется по какому-то датчику, который подключен к входу микроконтроллера.

Процесс начинает выполняться, а таймер начинает отсчитывать тактовые импульсы заданной частоты. Как только датчик определяет, что процесс завершён, на входе микроконтроллера появляется соответствующий сигнал и таймер захватывает (запоминает) текущее значение счётчика. Это значение сохраняется в регистр захвата. Имя этого регистра ICRx, где х - это номер таймера. Например, ICR0 - это регистр захвата таймера Т0, ICR1 - регистр таймера Т1 и т.д.

Где это можно использовать, зависит от задач и вашего воображения. Например, есть шлагбаум, который открывается в исправном состоянии за 1 секунду. А если он вдруг стал открываться за 2 секунды, то здесь явно что-то не так: либо ему что-то мешает, либо неисправны механические узлы или электрические цепи. То есть таким образом мы выполняем диагностику оборудования. Но это, разумеется, лишь один из примеров.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…