Читаем Искусство схемотехники. Том 3 (Изд.4-е) полностью

МП 68008, как уже описывалось выше, распознает прерывания, а также разнообразные «исключения», перечисленные в таблице, и сохранив в стеке текущие PC и SR, осуществляет переход на команду, адрес которой извлекается из вектора, соответствующего данному исключению. Так, если вы попытаетесь разделить на нуль, ЦП сохранит в стеке содержимое счетчика команд и регистра состояния, а затем перейдет на команду, 32-разрядный адрес которой хранится в байтах памяти с абсолютными адресами $014—$017. Точно так же обслуживаются и прерывания, причем для векторов прерываний с полным подтверждением отведены ячейки с адресами $100-$3FF, а для векторов автовекторизуемых прерываний — ячейки $064-$07F. Вы можете выполнять в обработчике прерываний любые действия; завершить их следует командой RTE (возврат из исключения). Чтобы избежать путаницы, ЦП запрещает прерывания после передачи управления обработчику и разрешает их снова при выполнении команды RTE. Если у вас уж слишком закрученный обработчик, вам может понадобиться разрешить прерывания (только более приоритетных уровней) внутри обработчика, что можно сделать, послав соответствующий байт в регистр состояния.

Программа bad__int. Из рис. 11.20 и текста программы 11.3 легко представить ход выполнения программы bad__int, в задачу которой входит упорядоченный сброс выходных сигналов и вывод на ЭЛД какой-то бросающейся в глаза информации. Стартовый адрес этой программы, определяемый компоновщиком после сборки всех настраиваемых строк, загружается (главной программой в процессе начальной загрузки) во все зарезервированные для векторов ячейки (в начале памяти), перечисленные в таблице. Любое исключение или ложное прерывание (т. е. что угодно, кроме прерывания уровня 5) заставляет ЦП выполнить описанную выше процедуру с передачей управления на программу bad__int. Сначала выключается сигнал Z-оси, чтобы исключение, случайно возникшее в середине программного импульса Z-оси, не оставило луч дисплея включенным на полную яркость (к тому же в одной точке). Далее стоит сбросить сигнал на выходе РАЗВЕРТКА и установить сигнал на выходе КОНЕЦ, поскольку в предшествующих измерениях все равно нет смысла.

Теперь проявим остроумие. Пошлем в порт ЭЛД 01Н и войдем в бесконечный цикл, в котором это число циклически сдвигается влево и после биологически заметной задержки снова посылается на ЭЛД. Результатом такой операции будет «шагающий бит» на ЭЛД-индикаторе, картина, которая заставит встрепенуться самого измученного оператора. Поскольку в цикле нет команды RTE, процесс этот будет идти бесконечно. Чтобы снова начать измерения, оператор должен нажать кнопку СБРОС.

Упражнение 11.15. Придумайте более совершенный алгоритм, позволяющий оператору определить, какое исключение привело к сбою. Подсказка: всего имеется немного менее 256 исключений; ЭЛД-индикатор содержит 8 бит. Можете ли вы написать программу, реализующую ваше решение?


Прерывания от таймера: четыре точки входа. Теперь у нас не осталось никаких отговорок. Нырнем. Текст обработчика прерываний входит в программу 11.3; его структурная схема изображена на рис. 11.21.




Рис. 11.21.Структурная схема обработчика прерываний.


Обработчик имеет четыре точки входа, соответствующие различным состояниям прибора. Они обозначены idle, wait__trig, sweep__start и get__data. Программа, в зависимости от общего состояния прибора, автоматически изменяет содержимое вектора прерываний (ячейка $074), связывая прерывание с той или иной точкой входа. Если вы не желаете накапливать данные, вы входите в обработчик в точке idle; на экран выводится одна точка и осуществляется возврат. Если войти в обработчик в точке get__data

, программа считывает АЦП, проверяет, не возникли ли состояния «конец ячейки» или «конец развертки» (обрабатывая их соответствующим образом) и обновляет дисплей. При входе в точке sweep__start устанавливается требуемое состояние ЭЛД и выходных сигналов и осуществляется переход в точку get__data.

Наконец, вход wait__trig служит для проверки наличия сигнала внешнего запуска и перехода либо на sweep__strat, либо на idle. В обработчике прерываний имеются и другие метки (например z__pulse), но они не являются входными точками, а служат для переходов внутри программы.

Перейти на страницу:

Похожие книги

Десять книг об архитектуре
Десять книг об архитектуре

Римский архитектор и инженер Витрувий жил и работал во второй половине I в. до н. э. в годы правления Юлия Цезаря и императора Октавиана Августа. Его трактат представляет собой целую энциклопедию технических наук своего времени, сочетая в себе жанры практического руководства и обобщающего практического труда. Более двух тысяч лет этот знаменитый труд переписывался, переводился, комментировался, являясь фундаментом для разработки теории архитектуры во многих странах мира.В настоящем издание внесены исправления и уточнения, подготовленные выдающимся русским ученым, историком науки В. П. Зубовым, предоставленные его дочерью М. В. Зубовой.Книга адресована архитекторам, историкам науки, культуры и искусства, всем интересующимся классическим наследием.

Витрувий Поллион Марк , Марк Витрувий

Скульптура и архитектура / Античная литература / Техника / Архитектура / Древние книги
Техобслуживание и мелкий ремонт автомобиля своими руками.
Техобслуживание и мелкий ремонт автомобиля своими руками.

Многим начинающим автомобилистам явно не хватает умений и навыков для того, чтобы правильно ухаживать за своей машиной. Книга расскажет, из чего состоит современный автомобиль, как его правильно эксплуатировать, почему важно своевременно делать техническое обслуживание, как не переплачивать на СТО за то, что вполне можно сделать самостоятельно. Книга научит, как самому поменять свечу и колесо, устранить нагар в цилиндрах, заменить перегоревшие лампочки, заделать проколы в колесах, устранить ржавчину на кузове, а также выполнить ряд других работ по техническому обслуживанию и мелкому ремонту автомобиля. Все приведенные примеры и рекомендации взяты «из жизни», основаны на реальных фактах и имеют практическое подтверждение.Для широкого круга читателей.

А. А. Гладкий , Алексей Анатольевич Гладкий

Автомобили и ПДД / Хобби и ремесла / Техника / Дом и досуг / Словари и Энциклопедии