double arrow

Общие сведения. Любой микроконтроллер серии АVR содержит несколько встроенных таймеров

ТАЙМЕРЫ- СЧЕТЧИКИ

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

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

Для каждой микросхемы нужен всего один сторожевой таймер. В любом мик­роконтроллере А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.

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

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


Сейчас читают про: