Программирование режимов работы КПП осуществляется автоматически при загрузке системы с помощью BIOS.
К задачам пользователя по программированию КПП относятся:
- маскирование/демаскирование линии прерывания;
- формирование команды EOI (End of Interrupt) - конец прерывания.
Эта команда завершает процедуру обработки прерываний. Она записывается в регистр командного слова КПП и осуществляет сброс бита занятия линии в регистре состояния ISR.
Инициализация таблицы векторов прерываний осуществляются из вызывающей (прерываемой) программы.
Пример программирования ввода-вывода в режиме прерывания по готовности данных АЦП с выводом данных на ЦАП (для приведенной ранее структуры модуля В/В).
Как и при программном В/В, вначале составляется ГСА В/В.
Обобщенная ГСА ввода/вывода по прерыванию приведена на рис. 3.15.
Рис.3.15.
Основная программа: Программа обработки прерываний:
1. Инициализация ИФ; 1. Разрешение запроса прерываний
2. Программирование таймера; для МП (sti);
3. Разрешение формирования 2. Программный ввод/вывод и
запроса прерывания устройством; обработка;
4. Установка вектора прерываний; 3. Запись команды EOI в контроллер
5. Демаскирование линии запроса прерываний.
прерываний;
6. Разрешение пуска АЦП;
7. Цикл ожидания запроса
прерывания (проверка нажатия
клавиши).
Основные ее отличия:
- вместо цикла программного опроса готовности данных АЦП используются цикл ожидания запроса прерывания по готовности данных АЦП, во время которого может выполняться, например, опрос нажатия клавиши;
- в основной программе дополнительно производится разрешение формирования запроса прерывания, установка вектора прерывания, демаскирование линии запроса прерывания.
В процедуре обработки прерываний разрешается запрос прерывания с помощью программного ввода/вывода и производится запись команды EOI в контроллер прерываний.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.