Выбрать главу

Биты 1, 0 — ISC01, ISC00: биты управления срабатывание прерывания 0. Внешнее прерывание активируется выводом INT0, если установлен флаг 1 регистра состояния SREG и установлена соответствующая маска в регистре GIMCK. В табл. 2.4 приведена установка битов для задания срабатывания по уровню и фронтам.

2.5. Режимы пониженного энергопотребления

Для запуска режима пониженного энергопотребления должен быть установлен в состояние 1 бит SE регистра MCUCR и должна быть выполнена команда SLEEP. Если во время нахождения в режиме пониженного потребления происходит одно из разрешенных прерываний, процессор начинает работать, исполняет подпрограмму отработки прерывания и продолжает выполнение программы с команды, следующей за SLEEP. Содержимое регистрового файла и память ввода/вывода не изменяется. Если в режиме пониженного потребления происходит сброс, процессор начинает выполнение программы., вектора сброса.

Если для вывода из экономичного режима используется прерывание по уровню, низкий уровень должен удерживаться на время, достаточное для запуска генератора тактовых импульсов, — не менее 16 мс. Иначе флаг прерывания может вернуться в 0 до того, как процессор начнет работу.

Режим холостого хода

Когда бит SM сброшен, команда SLEEP переводит процессор в режим холостого хода (Idle mode). ЦПУ останавливается, но таймеры/счетчики, сторожевой таймер и система прерываний продолжают работать. Это позволяет процессору возобновлять работу как с внешних прерываний, так и по переполнению таймеров/счетчики или по сбросу от сторожевого таймера. Если прерывание от аналогового компаратора не требуется, аналоговый компаратор может быть отключен установкой бита ACD регистра ACSR. Это уменьшает потребляемую мощность.

Экономичный режим

Когда бит SM = 1, команда SLEEP переводит процессор в экономичный режим (Power Down Mode). В этом режиме останавливается генератор тактовых импульсов. Программист может разрешить работу сторожевого таймера в этом режиме. Если сторожевой таймер разрешен, процессор выходит из экономичного режима после отработки периода сторожевого таймера. Если сторожевой таймер запрещен, выход из экономичного режима может произойти только по внешнему сбросу или внешнему прерыванию по уровню.

2.6. Таймеры/счетчики

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

В качестве источника импульсов для таймеров можно выбрать сигнал тактовой частотой микроконтроллера (СК), импульсы предварительного делителя (СК/8, СК/64, СК/256 или СКУ1024) или импульсы с соответствующего внешнего вывода. На рис. 2.25 изображена структурная схема предварительного делителя частоты.

Кроме того, таймеры могут быть остановлены.

Рис. 2.25. Предварительный делитель тактовой частоты для таймеров

8-разрядный таймер/счетчик 0

8-разрядный таймер/счетчик может получать импульсы тактовой частоты — СК, импульсы с предварительного делителя (СК/8, СК/64, СК/256 или СК/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR0. Флаг переполнения таймера находится в регистре TIFR. Биты управления таймером расположены в регистре TCCR0. Разрешение и запрещение прерываний от таймера управляется регистром TIMCK.

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

Рис. 2.26. Блок-схема таймера/счетчика 0

Рис. 2.27. Регистр управления таймером/счетчиком 0 TCCR0