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

10. Внешние прерывания

Для МК ATmega16 предусмотрено три внешних прерывания, называемые внешними прерываниями 0, 1, 2.

Внешние прерывания 0, 1, 2 – это события, заключающиеся в появлении на выводах портов PORTD2, PORTD3 или PORTB2 определенного вида управляющих сигналов при условии, что эти выводы сконфигурированы для выполнения альтернативных функций INT0, INT1 или INT2 независимо от того, являются ли они входами или выходами. Это дает возможность генерировать прерывания программно.

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

За эти четыре цикла процессор заканчивает выполнение текущей команды, ее адрес из программного счетчика записывается в стек и осуществляется переход на начало подпрограммы обработки

прерывания.

Выход из подпрограммы обработки прерывания осуществляется в обратном порядке и также занимает четыре цикла. После выхода

из прерывания процессор всегда выполняет одну команду, прежде чем выполнить обработку следующего прерывания.

В управлении внешними прерываниями участвуют несколько управляющих регистров из пространства ввода/вывода МК. В первую очередь – это регистр статуса (SREG), бит I которого управляет глобальным разрешением прерываний, а также общий регистр управления прерываниями (позволяет разрешить возникновение внешних прерываний), регистр управления МК (позволяет выбрать, по какому виду сигнала будут возникать внешние прерывания 0 и 1) и регистр управления и статуса МК, который позволяет выбрать, по какому виду сигнала будет возникать внешние прерывание 2.

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

Микроконтроллер ATmega16 оснащен тремя таймерами/ счетчиками общего назначения – двумя 8-разрядными (таймеры/ счетчики 0, 2) и одним 16-разрядным (таймер/счетчик 1).

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

      • внутреннего тактового генератора (fтакт);

      • предварительного делителя (fтакт/8, /64, /256, /1024);

      • внешний тактовый сигнал.

Использование предделителя позволяет управлять разрешением подсчета импульсов и максимальным значением формируемого временного интервала. Чем больше коэффициент деления предделителя, тем больше максимальное значение формируемого временного интервала, но меньше разрешение счета, и наоборот.

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

Таймер/счетчик 2 в дополнение к обычному режиму может тактироваться асинхронно от отдельного внутреннего генератора. Этот генератор оптимизирован под использование кварцевого кристалла на частоту 32768 Гц, что позволяет использовать таймер/счетчик 2 как часы реального времени (RTC - Real Time Clock).

Таймеры/счетчики МК имеют несколько режимов работы, которые будут рассмотрены ниже.