Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответі на єкзамен Мпп.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.66 Mб
Скачать
  1. Переривання в мікроконтролерах Atmel avr.

Прерывание в микропроцессорных устройствах – это переход от выполнения текущей программы к запуску специальной подпрограммы обработчика прерывания (программой обслуживания прерывания, рис. 2.6), вызываемый специальным сигналом.

Рисунок 2.6

Микропроцессорное ядро имеет входной сигнал запроса на прерывание (interrupt request) при получении которого выполнение следующей инструкции происходит по вектору (адресу) подпрограммы обработчика прерывания. Ядро может проигнорировать этот сигнал, если предварительно был установлен запрет (маскирование) обслуживания запроса прерывания. Обработчик прерывания обеспечивает следующую последовательность действий:

1. Сохранить содержимое регистров контекста.

2. Сбросить контроллер прерываний и оборудование, вызвавшее запрос.

3. Обработать данные.

4. Восстановить содержимое регистров контекста.

5. Вернуться к прерванной программе.

Регистры контекста - это регистры, определяющие текущее состояние выполнения основной программы. Обычно к их числу относятся программный счетчик, регистры общего назначения, регистры флагов, аккумуляторы. При обработке прерывания автоматически сохраняется счетчик команд, а остальные, по необходимости, сохраняет сам программист. После сброса в исходное состояние контроллер прерываний готов воспринимать следующий запрос, а оборудование, вызывающее прерывание, готово посылать запрос, когда возникают соответствующие причины. Если поступит новый запрос прерывания, то регистр маскирования прерываний процессора предотвратит обработку прерывания, но регистр состояния прерываний зафиксирует этот запрос, который будет ожидать своего обслуживания. После завершения обработки текущего прерывания маска прерываний будет сброшена, и вновь поступивший запрос поступает на обработку. Некоторые МПС поддерживают вложенные прерывания с несколькими уровнями приоритета. В этом случае возникновение нового более приоритетного прерывания может прервать текущее.

Адрес, который загружается в программный счетчик при переходе к обработчику прерывания, называется вектором прерывания. Адрес, который загружается в программный счетчик при запуске микроконтроллера - называется «вектор сброса». Для различных прерываний могут быть заданы разные вектора, что избавляет программу обслуживания от необходимости определять причину прерывания.

Когда возникает вопрос о выборе микропроцессорного устройства для новой разрабатываемой системы, то очень важно оценить основные параметры разных кандидатов. Обычно выбирается самый дешевый микроконтроллер предположительно способный решить поставленную задачу и среда разработки на языке высокого уровня (чаще всего C) для быстрого написания кода. При этом часто возникают проблемы нехватки ресурсов микропроцессорного устройства. При нехватке памяти микропроцессорного устройства, ему можно подобрать замену из того же семейства, но с большим объемом памяти или с внешней шиной для дополнительной. В случае нехватки вычислительных ресурсов в том же семействе сложнее найти микропроцессорное устройство с большей тактовой частотой. Переход к ручной оптимизации программы может быть длительной и малоэффективной.