.cseg это кодовый (программный) сегмент памяти, ы отличие от сегмента данных .dseg
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено _Bill 24 января 2006 г. 08:32
В ответ на: Подскажите по прерываниям AVR отправлено monofin 24 января 2006 г. 08:14

Для организации таблицы векторов лучше воспользоваться директивами .org


.org 5 ; Вектор прерывания по переполнению (утчнить!!!)
rjmp t1_end ; Переход

.org 6
rjmp tim_ovf


В этом случае нет необходимости считать адрес самому. Еще лучше воспользоваться символическими определениями векторов. Они должны быть в соответствующем файле *.inc. Далее, не забудьте, что:
1. процедура обработки прерываний должна заканчиваться инструкцией reti;
2. в процедуре обработки прерываний необходимо сохрвнять ВСЕ используемые регистры (PSW в том числе) в стеке и восстанавливать их при выходе из прерываний.
А самое главное ДО вызова ЛЮБОЙ подпрограммы (обработка прерыванийй к ним тоже относится) НЕОБХОДИМО ПРОИНИЦИАЛИЗИРОВАТЬ указатель стека.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru