Основы программирования микроконтроллеров ATMega128 и 68hc908. Китаев Ю.В. - 16 стр.

UptoLike

Составители: 

end;
Ниже приведена таблица 1.2 некоторых векторов прерываний МК
ATMega128 и пример расположения вектора прерывания при совпадении
кодов таймера0 по адресу 1E и процедуры обработчика с символическим
адресом TIMER0COMP.
Таблица 1.2
В момент совпадения кодов счетчика TCNT0 и регистра OCR0 схема
управления (Control Logic) на рис.1.6 сформирует признак переполнения
TOV0 и запрос на прерывание. МК по запросу автоматически обратится к
ячейке с адресом 1E, куда программист (или транслятор) заносит команду
перехода JMP TIMER0COMP к процедуре обработки прерывания с
символическим адресом TIMER0COMP. Осуществив этот переход МК
начнет выполнять подпрограмму interrupt TIMER0COMP.... (см. выше), в
которой в нашем примере переключается светодиод и подаются звуковые
отметки.
Для чего это нужно? В процессе разработки программы ее размер и
относительное положение отдельных ее фрагментов постоянно меняется,
поэтому указать сразу окончательное значение физического адреса,
соответствующего символическому имени (TIMER0COMP) невозможно.
Адрес же ячейки памяти, где будет храниться адрес перехода (или сама
команда перехода) определяется структурой МК и известен из справочника.
Содержимое такой ячейки(еек) памяти называют вектором прерывания.
На рисунке 1.7 показан фрагмент кода после очередной трансляции и
компоновки, из которого видно, что в ячейку памяти с адресом 1E
компоновщик поместил команду перехода JMP 03A9h к подпрограмме
TIMER0COMP, которая на данном этапе разработки программы
располагается по адресу 0003A9. Аналогично действует механизм
16