
- •Работа таймеров-счетчиков микроконтроллеров avr в нормальном режиме и режиме «захвата»
- •Гарвардская архитектура микропроцессоров. Общая характеристика. Достоинства и недостатки
- •Классификация микроконтроллеров. Краткая характеристика каждого класса
- •Принципы построения современных микроконтроллеров.
- •Общая характеристика таймеров-счетчиков микроконтроллеров avr
- •Прерывания в микропроцессорных системах
- •Классификация постоянных запоминающих устройств (пзу)
- •Стек, память программ, eeprom память микроконтроллеров avr фирмы Atmel
- •Работа таймеров-счетчиков микроконтроллеров avr в режиме широтно-импульсной модуляции
- •Работа таймеров-счетчиков микроконтроллеров avr в нормальном режиме и режиме «захвата»
Общая характеристика таймеров-счетчиков микроконтроллеров avr
Общие сведения
Любой микроконтроллер серии AVR содержит несколько встроенных таймеров. Причем, по своему назначению их можно разделить на две категории. К первой категории относятся таймеры общего назначения. Вторую категорию составляет сторожевой таймер. Сторожевой таймер предназначен для автоматического перезапуска микроконтроллера в случае «зависания» его программы. Зависанием называют зацикливание программы в результате ошибки, допущенной программистом либо в результате действия внешней помехи. Для каждой микросхемы нужен всего один сторожевой таймер. В любом микроконтроллере AVR такой таймер имеется.
Таймеры общего назначения используются для формирования различных интервалов времени и прямоугольных импульсов заданной частоты. Кроме того, они могут работать в режиме счетчика и подсчитывать тактовые импульсы заданной частоты, измеряя, таким образом, длительность внешних сигналов, а так же при необходимости подсчитывать количество любых внешних импульсов. По этой причине данные таймеры называют: «таймеры/счетчики». В микросхемах AVR применяются как восьмиразрядные, так и шестнадцатиразрядные таймеры/счетчики. Их количество для разных микроконтроллеров изменяется от одного до четырех.
Все таймеры обозначаются числами от 0 до 3. Например, Timer/Counter0, Timer/Counter1 и т.д. В русскоязычной литературе их чаще именуют сокращенно T0, T1, T2, T3. Таймеры T0 и T2 в большинстве микроконтроллеров восьмиразрядные. Таймеры T1 и T3 - шестнадцатиразрядные. Таймер T0 имеется в любой микросхеме AVR. Остальные добавляются по мере усложнения модели.
Каждый восьмиразрядный таймер представляет собой один восьмиразрядный регистр, который для микроконтроллера является регистром ввода/вывода. Этот регистр хранит текущее значение таймера и называется счетным регистром. Шестнадцатиразрядные таймеры имеют шестнадцатиразрядный счетный регистр. Каждый счетный регистр имеет свое имя. Счетный регистр восьмиразрядного таймера именуется TCNTx. Где x - это номер таймера. Для таймера T0 регистр называется TCNT0. Для таймера T2 - TCNT2. Шестнадцатиразрядные регистры именуются похожим образом. Отличие в том, что каждый шестнадцатиразрядный счетный регистр для микроконтроллера представляет собой два регистра ввода/вывода. Один для хранения старших битов числа, а второй для хранения младших битов. К имени регистра старших разрядов добавляется буква H, а для регистра младших разрядов добавляется буква L. Таким образом, счетный регистр таймера T1 - это два регистра ввода/вывода: TCNT1H и TCNT1 L. Счетный регистр таймера T3 - это два регистра TCNT3 H и TCNT3 L.
Микроконтроллер может записать в любой счетный регистр любое число в любой момент времени, а так же в любой момент прочитать содержимое любого счетного регистра. Когда таймер включается в режим счета, то на его вход начинают поступать счетные импульсы. После прихода каждого такого импульса содержимое счетного регистра увеличивается на единицу. Счетными импульсами могут служить как специальные тактовые импульсы, вырабатываемые внутри самого микроконтроллера, так и внешние импульсы, поступающие на специальные входы микросхемы. При переполнении счетного регистра его содержимое обнуляется, и счет начинается сначала.