Бит | |||||||||
$10 ($30) | PIND7 | PIND6 | PIND5 | PIND4 | PIND3 | PIND2 | PIND1 | PIND0 | PIND |
Чтение/Запись | R | R | R | R | R | R | R | R | |
Исходное значение | Hi-Z | Hi-Z | Hi-Z | Hi-Z | Hi-Z | Hi-Z | Hi-Z | Hi-Z |
Так как рассматриваемая работа первая, то для приобретения обучающимися навыков работы с лабораторным комплексом все обучающиеся сначала делают одинаковую работу. Со своих рабочих мест они вводят в ПЭВМ одну и ту же задачу вычитания из числа 5 числа 3, приведённую в п. 1.5.3.1. После компиляции программы она записывается в микроконтроллер рабочего места и демонстрируется её работа преподавателю.
Система прерываний
Микроконтроллер AT90S8535 использует 17 источников прерывания. Эти прерывания располагают отдельными векторами в пространстве памяти программ. Каждому прерыванию присвоен свой бит разрешения, который должен быть установлен совместно с битом I регистра статуса SREG.
Младшие адреса пространства памяти автоматически определяются как векторы сброса и прерываний.
Полный перечень векторов прерывания представлен в табл. 2.3.
|
|
Прерывания с младшими адресами имеют больший уровень приоритета. RESET имеет наивысший уровень приоритета, следующим являются запрос внешнего прерывания INT0 и т. д.
Микроконтроллеры AT90S8535 содержат два специальных 8-разрядных регистра масок прерываний: регистр масок внешних прерываний GIMSK и регистр масок прерываний по таймеру/счетчику TIMSK-Timer/Сounter.
При возникновении прерывания бит I разрешения глобального прерывания (Global Interrupt Enable) очищается, и все прочие прерывания запрещаются. Пользовательское программное обеспечение (ПО), с тем, чтобы разрешить вложенные прерывания, может установить бит I внутри подпрограммы обработки прерывания. Выход из подпрограммы обработки прерывания происходит по команде RETI, при этом бит I устанавливается в состояние 1. Когда счетчик команд указывает вектор подпрограммы обработки прерывания, соответствующий флаг, вызвавший прерывание, аппаратно очищается. Некоторые флаги прерываний можно очистить, записав в соответствующий бит(ы) очищаемого флага логическую единицу.
Если условия прерываний возникли когда очищен бит разрешения всех прерываний, поступающие прерывания устанавливают свои флаги и они будут сохранены в таком состоянии, пока не возникает разрешение глобального прерывания и будут обработаны в порядке приоритетов.
Прерывания по уровню сигнала флага не имеют и условия прерывания имеют место, пока активен внешний сигнал.
Обратите внимание, что регистр состояния автоматически не сохраняется при закрытии программы, т.е. при открытии прерывающей подпрограммы он должен быть сохранён и должен быть восстановлен при возвращении из прерывающей подпрограммы. Выполнение этого условия должно осуществляться за счет учета в программе.
|
|
Таблица 2.3.Векторы прерывания
Vector No. | Program Address | Source | Interrupt Definition |
$000 | RESET | Сброс по выводу RESET и сторожевому таймеру (Hardware Pin, Power-On Reset and Watchdog Reset) | |
$001 | INTO | Запрос внешнего прерывания 0 (External Interrupt Reguest 0) | |
$002 | INT1 | Запрос внешнего прерывания 1 (External Interrupt Reguest 1) | |
$003 | TIMER2 COMP | Совпадение при сравнении таймера/счетчика 2 (Timer/Conter2 Compare Match) | |
$004 | TIMER2 OVF | Переполнение таймера/счетчика2 (Timer/Conter2 Overflow) | |
$005 | TIMER1 CAPT | Захват таймера/счетчика1 (Timer/Conter1 Capture Event) | |
$006 | TIMER1 COMPA | Совпадение А при сравнении таймера/счетчика 1 (Timer/Conter1 Compare Match А) | |
$007 | TIMER1 COMPB | Совпадение В при сравнении таймера/счетчика 1 (Timer/Conter1 Compare Match В) | |
$008 | TIMER1 OVF | Переполнение таймера/счетчика1 (Timer/Conter1 Overflow) | |
$009 | TIMER0 OVF | Переполнение таймера/счетчика0 (Timer/Conter0 Overflow) | |
$00A | SPI, STC | Завершение пересылки SPI (SPI Serial Transfer Complete) | |
$00B | UART, RX | Завершение приема UART (UART, Rx Complete) | |
$00C | UART, UDRE | Регистр данных UART пуст (UART Data Register Empty) | |
$00D | UART, TX | Завершение передачи UART (UART, Tx Complete) | |
$00E | ADC | Завершение ADC преобразования (ADC Conversion Complete) | |
$00F | EE_RDY | Готовность EEPROM (EEPROM Ready) | |
$010 | ANA_COMP | Срабатывание аналогового компаратора (Analog Comparator) |