Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Прерывания и их обработка




 

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

Система прерываний обеспечивает микроконтроллеру возможность реагировать на всевозможные события внутри и вне его.

 


 

 

Источник прерывания – событие (внешнее устройство или узел периферии МК), которое вызывает прерывание. МК ATmega16 имеет 20 источников прерываний.

Каждому прерыванию соответствует так называемый вектор прерывания.

Характеристиками любого вектора являются его начало и направление. Программный вектор прерывания – не исключение. Он характеризуется началом (начальным адресом подпрограммы обработчика прерывания) и «направлением» (ходом) развития обработчика прерываний.

Описание векторов прерываний приведено в таблице векторов прерываний (табл. 2.3). В таблице указаны также уровни приоритета для каждого прерывания. Прерывания с младшими адресами имеют более высокий уровень приоритета (RESET имеет наивысший уровень приоритета, следующим является INT0 - запрос внешнего прерывания 0 и т.д. по табл. 2.3).


 

Таблица векторов прерываний


Таблица 2.3


 

№ п/п Адрес вектора Описание
$000 Вектор сброса МК (Reset)
$002 Запрос внешнего прерывания 0 (External Interrupt Request 0)
$004 Запрос внешнего прерывания 1 (External Interrupt Request 1)
$006 Совпадение таймера/счетчика 2 (Timer/Counter2 Compare Match)
$008 Переполнение таймера/счетчика 2 (Timer/Counter2 Overflow)
$00A Захват таймера/счетчика 1 (Timer/Counter1 Capture Event)
$00C Совпадение A таймера/счетчика1(Timer/Counter1 Compare Match A)
$00E Совпадение B таймера/счетчика1(Timer/Counter1 Compare Match B)
$010 Переполнение таймера/счетчика 1 (Timer/Counter1 Overflow)
$012 Совпадение таймера/счетчика 0 (Timer/Counter0 Compare Match)
$014 Завершение пересылки по ППИ (Serial Transfer Complete)
$016 Завершение приема данных УАПП (USART, Rx Complete)
$018 Регистр данных УАПП пуст (USART Data Register Empty)
$01A Завершение передачи данных УАПП (USART, Tx Complete)
$01C Завершение аналого-цифрового преобразования (ADC Conversion Complete)
$01E Готовность ЭСППЗУ (EEPROM Ready)
$020 Срабатывание аналогового компаратора (Analog Comparator)
$022 Прием данных по двухпроводному интерфейсу I2C (Two-wire Serial Interface)
$024 Запрос внешнего прерывания 2 (External Interrupt Request 2)
$026 Совпадение таймера/счетчика 0 (Timer/Counter0 Compare Match)
$028 Готовность загрузочного сектора (Store Program Memory Ready)

 

 

Начальными адресами вектора сброса и прерываний служат младшие адреса пространства памяти программ начиная с адреса

$000.

Каждому прерыванию присвоен свой бит разрешения в соответствующем управляющем регистре пространства ввода/вывода, который должен быть установлен совместно с битом I регистра статуса.

При возникновении прерывания бит I разрешения глобального прерывания очищается и все прочие прерывания запрещаются. Для того чтобы разрешить вложенные прерывания (т.е. прерывания, которые могут возникнуть в процессе обработки текущего), пользовательское ПО может установить бит I внутри подпрограммы обработки прерывания. Выход из подпрограммы обработки прерывания происходит по команде RETI, которая устанавливает бит I в состояние лог. 1.

Когда управление передается на начало вектора прерывания, соответствующий флаг, вызвавший прерывание, аппаратно очищается. Некоторые флаги прерываний можно очистить, записав в соответствующий(е) бит(ы) регистра управления лог. 1.

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

 


Поделиться:

Дата добавления: 2015-01-19; просмотров: 77; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты