Таймеры-счетчики - Таймеры-счетчики в микроконтроллерах

Общие сведения

Любой микроконтроллер серии АVR содержит несколько встроенных таймеров. Причем по своему назначению их можно разделить на две категории. К первой категории относятся таймеры общего назначения. Вторую категорию составляет сторожевой таймер. Сторожевой таймер предназначен для автоматического перезапуска микроконтроллера в случае "зависания" его программы.

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

Для каждой микросхемы нужен всего один сторожевой таймер. В любом микроконтроллере АVR такой таймер имеется.

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

По этой причине данные таймеры называют "таймеры/счетчики". В микросхемах АVR применяются как восьмиразрядные, так и шестнадцатиразрядные таймеры/счетчики. Их количество для разных микроконтроллеров изменяется от одного до четырех. Все таймеры обозначаются числами от 0 до 3.

Пример. Tiтer/Couпter0, Timer/Couпter1 и т. д. В русскоязычной литературе их чаще именуют сокращенно Т/С0, Т/С1, Т/С2, Т/СЗ. Таймеры Т/С0 и Т/С2 в большинстве микроконтроллеров - восьмиразрядные. Таймеры Т/С1 и Т/СЗ - шестнадцатиразрядные. Таймер Т/С0 имеется в любой микросхеме AVR. Остальные добавляются по мере усложнения модели.

Каждый восьмиразрядный таймер представляет собой один восьмиразрядный регистр, который для микроконтроллера является регистром ввода-вывода. Этот регистр хранит текущее значение таймера и называется счетным регистром. Шестнадцатиразрядные таймеры имеют шестнадцатиразрядный счетный регистр. Каждый счетный регистр имеет свое имя.

Счетный регистр восьмиразрядного таймера именуется TCNТx, где "х" - это номер таймера. Для таймера Т/С0 регистр называется TCNТ0. Для таймера Т/С2 - TCNТ2. Шестнадцатиразрядные регистры именуются похожим образом. Отличие в том, что каждый шестнадцатиразрядный счетный регистр для микроконтроллера представляет собой два регистра ввода-вывода. Один предназначен для хранения старших битов числа, а второй - для хранения младших битов. К имени регистра старших разрядов добавляется буква Н, а для регистра младших разрядов добавляется буква L. Таким образом, счетный регистр таймера Т/С1 - это два регистра ввода-вывода: TCNТ1H и TCNТ1L.

Счетный регистр таймера Т/С3 - это два регистра TCNТ3H и ТСNТ3L.

Микроконтроллер может записать в любой счетный регистр любое число в любой момент времени, а также в любой момент прочитать содержимое любого счетного регистра. Когда таймер включается в режим счета, то на его вход начинают поступать счетные импульсы. После прихода каждого такого импульса содержимое счетного регистра увеличивается на единицу. Счетными импульсами могут служить как специальные тактовые импульсы, вырабатываемые внутри самого микроконтроллера, так и внешние импульсы, поступающие на специальные входы микросхемы. При переполнении счетного регистра его содержимое обнуляется, и счет начинается сначала.

Любой таймер жестко завязан с системой прерываний. Вызвать прерывание может целый ряд событий, связанных с таймером. Например, существует прерывание по переполнению таймера, по срабатыванию специальной схемы совпадения. Отдельные прерывания может вызывать сторожевой таймер.

Похожие статьи




Таймеры-счетчики - Таймеры-счетчики в микроконтроллерах

Предыдущая | Следующая