Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы МП.New.doc
Скачиваний:
27
Добавлен:
23.11.2019
Размер:
1.08 Mб
Скачать

2.3. Прерывания от таймеров/счетчиков

В ATmega128 для разрешения/запрещения прерываний от таймеров/счетчиков используется два регистра ввода/вывода: TIMSK и ETIMSK. Точно также в микроконтроллере присутствуют два регистра, содержащие флаги прерываний: TIFR и ETIFR.

Форматы регистров, используемых для разрешения/запрещения прерываний от таймеров/счетчиков, показаны на Рис. 2.4, а описание их битов приведено в Табл. 2.7.

Для разрешения какого-либо прерывания от таймера/счетчика необходимо установить в 1 соответствующий бит регистра TIMSK(ETIMSK) и, разумеется, флаг I регистра SREG.

а)

б)

Рис. 2.4. Формат регистров TIMSK (а) и ETIMSK (б)

Таблица 2.7. Биты регистров TIMSK, ETIMSK

Название бита

Описание

TOIEn

Флаг разрешения прерывания по переполнению таймера/счетчика Tn

OCIEn

Флаг разрешения прерывания по событию «Совпадение» таймера/счетчика Tn

OCIEnA

Флаг разрешения прерывания по событию «Совпадение A» таймера/счетчика Tn

OCIEnB

Флаг разрешения прерывания по событию «Совпадение B» таймера/счетчика Tn

OCIEnC

Флаг разрешения прерывания по событию «Совпадение C» таймера/счетчика Tn

TICIEn

Флаг разрешения прерывания по событию «Захват» таймера/счетчика Tn

Форматы регистров, используемых для индикации наступления прерываний от таймеров/счетчиков, показаны на Рис. 2.5, а описание их битов приведено в Табл. 2.8.

а)

б)

Рис. 2.5. Формат регистров TIFR (а) и ETIFR (б)

Таблица 2.8. Биты регистров TIFR и ETIFR

Название бита

Описание

TOVn

Флаг прерывания по переполнению таймера/счетчика Tn

OCFn

Флаг прерывания по событию «Совпадение» таймера/счетчика Tn

OCFnA

Флаг прерывания по событию «Совпадение A» таймера/счетчика Tn

OCFnB

Флаг прерывания по событию «Совпадение B» таймера/счетчика Tn

OCFnC

Флаг прерывания по событию «Совпадение C» таймера/счетчика Tn

ICFn

Флаг прерывания по событию «Захват» таймера/счетчика Tn

При наступлении какого-либо события соответствующий флаг регистра TIFR/ETIFR устанавливается в 1. При запуске подпрограммы обработки прерывания он аппаратно сбрасывается в 0. Любой флаг может быть также сброшен программно, записью в него лог. 0.

2.4. Предделители таймеров/счетчиков

Блоки предделителей предназначены для формирования тактовых сигналов таймеров/счетчиков clkT0, clkT1, clkT2, clkT3.

Все таймеры/счетчики, не имеющие асинхронного режима работы, используют один и тот же 10-битный предделитель. При этом управление тактовым сигналом каждого таймера/счетчика осуществляется индивидуально.

2.4.1. Управление предделителями

Помимо управления тактовым сигналом таймера/счетчика, все микроконтроллеры семейства позволяют осуществлять сброс предделителей, а отдельные модели позволяют также осуществлять их остановку. Для этого используется регистр специальных функций SFIOR. Формат этого регистра приведен на Рис. 2.6 (биты, не используемые для управления предделителями таймеров/счетчиков, указаны на рисунке как X).

Рис. 2.6. Управление предделителями таймеров/счетчиков — регистр SFIOR

Для сброса предделителей таймеров/счетчиков используются биты PSRx регистра. При записи в эти биты лог. 1 предделители соответствующих таймеров/счетчиков переводятся в исходное состояние. Биты сбрасываются в 0 аппаратно после выполнения операции сброса. Поскольку, как было сказано выше, один предделитель используется несколькими таймерами/счетчиками, сброс предделителя повлияет на все таймеры/счетчики, которые его используют.

Остановка всех предделителей микроконтроллера осуществляется записью лог. 1 в бит TSM регистра SFIOR. Последующий запуск предделителей осуществляется записью в бит TSM лог. 0. Указанная функция может использоваться, в частности, для синхронизации таймеров/счетчиков. После установки бита TSM и битов PSRx соответствующие таймеры/счетчики останавливаются и могут быть проинициализированы требуемыми значениями. После сброса бита TSM биты PSRx аппаратно сбрасываются и все таймеры/счетчики начинают работать одновременно.