Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

98 Микроконтроллеры AVR от азов программирования... предназначен для автоматического перезапуска микроконтроллера в слу ­ чае «зависания» его программы. Это полезно запомнить. Зависанием называют зацикливание программы в результате ошибки, допущенной программистом, либо в результате действия внешней помехи. Для каждой микросхемы нужен всего один сторожевой таймер. В любом микроконтроллере AVR такой таймер имеется. Таймеры общего назначения используются для формирования различ ­ ных интервалов времени и прямоугольных импульсов заданной частоты. Кроме того, они могут работать в режиме счетчика и подсчитывать так ­ товые импульсы заданной частоты, измеряя таким образом длительность внешних сигналов, а также при необходимости подсчитывать количество любых внешних импульсов. По этой причине данные таймеры называют «таймеры/счетчики». В микросхемах AVR применяются как восьмиразрядные, так и шестнадцати ­ разрядные таймеры/счетчики. Их количество для разных микроконтрол ­ леров изменяется от одного до четырех. Точное количество таймеров/счет- чиков для каждой микросхемы серии AVR можно определить из табл. 3.1 (графа «Таймеры 8/16 бит»). Все таймеры обозначаются числами от 0 до 3. Пример. Timer/CounterO, Timer/Counterl и т.д. В русскоязычной литературе их чаще именуют сокращенно ТО, Tl, Т2, ТЗ. Таймеры ТО и Т2 в большин ­ стве микроконтроллеров — восьмиразрядные. Таймеры Т1 и ТЗ — шестнадцатиразрядные. Таймер ТО имеется в любой микросхеме AVR. Остальные добавляются по мере усложнения модели. Каждый восьмиразрядный таймер представляет собой один восьми ­ разрядный регистр, который для микроконтроллера является регистром ввода-вывода. Этот регистр хранит текущее значение таймера и называется счетным регистром. Шестнадцатиразрядные таймеры имеют шестнадцати ­ разрядный счетный регистр. Каждый счетный регистр имеет свое имя. Счетный регистр восьмиразрядного таймера именуется TCNTx, где «х» — это номер таймера. Для таймера ТО регистр называется TCNT0. Для таймера Т2 — TCNT2. Шестнадцатиразрядные регистры именуются похожим обра ­ зом. Отличие в том, что каждый шестнадцатиразрядный счетный регистр для микроконтроллера представляет собой два регистра ввода-вывода. Один предназначен для хранения старших битов числа, а второй — для хранения младших битов. К имени регистра старших разрядов добав ­ ляется буква Н, а для регистра младших разрядов добавляется буква L. Таким образом, счетный регистр таймера Т1 — это два регистра ввода-

RkJQdWJsaXNoZXIy MTExODQxMg==