- •1Двоичные переменные и двоичные сигналы. Цифровые устройства и их параметры.
- •2. Двоичные коды и операции над ними.
- •3. Регистры. Устройства с наличием отключенного состояния выходов.
- •4. Постоянные и оперативные запоминающие устроства.
- •5. Структура простейшей микропроцессорной системы.
- •6. Структура центрального процессора.
- •7. Структура команды и способы адресации.
- •8Система команд. Команды пересылки.
- •10Система команд. Команды логических операций.
- •12. Структура микроконтроллера avr.
- •13. Организация памяти.
- •N – устанавливается в 1, если старший 7ой байт результата равен 1. И 0, если 0.
- •14. Порты ввода-вывода.
- •15. Система команд. Команды пересылки.
- •16. Система команд. Команды логических операций.
- •16. Система команд. Команды логических операций.
- •17. Система команд. Команды арифметических операций.
- •18. Система команд. Команды битовых операций.
- •19. Система команды. Команды передачи управления.
- •20. Модуль ацп.
- •21. Система прерываний.
- •22. Таймеры-счетчики.
- •23. Интерфейс spi.
- •24. Модуль usart.
21. Система прерываний.
Прерывание – прекращение нормального хода выполнения программы для выполнения подпрограммы обслуживания прерывания. Событие, которым обусловлено это прерывание может быть как внешним, так и внутренним. Событие может возникнуть в любой момент времени. Различают внешнее и внутреннее прерывание. Событие внутреннего прерывания: завершение цикла преобразования АЦП. Событие внешнего прерывания: на определенный вывод микроконтроллера поступает сигнал, говорящий о том, что совершилось некоторое событие и нужно прервать выполнение команды.
При возникновении события прерывания микроконтроллер завершает очередную подпрограмму основной программы, после этого осуществляется запоминание в стеке адреса следующей команды основной программы.
Последней программой подпрограммы должна быть команда RET I по этой команде осуществляется возврат из подпрограммы в программу, для этого из стековой области памяти считывается ранее сохраненный адрес и осуществляется переход к основной программе и команде по этому адресу.
В рассматриваемом микроконтроллере существуют 3 внешних прерывания и 17 внутренних.
Для внешних существуют три входа: INT 0, INT 1, INT 2.
-
№
Событие прерывания
Адрес первой команды подпрограммы
1
Сигнал на входе INT0
0001h
2
Сигнал на входе INT1
0002h
3
Событие совпадения таймера счетчика T2
0003h
4
Переполнение таймера счетчика T2
0004h
5
Захват T1
0005h
6
Совпадение A T1
0006h
7
Совпадение B T1
0007h
8
Переполнение T1
0008h
9
Переполнение T0
0009h
10
Передача по SPI завершена
000Ah
11
Прием USART завершен
000Bh
12
Регистр данных USART пуст
000Ch
13
Передача USART завершена
000Dh
14
Преобразование АЦП завершено
000Eh
15
Готовность ПЗУ к памяти данных
000Fh
16
Срабатывание аналогового компаратора
0010h
17
Модуль TWI
0011h
18
Сигнал на входе
0012h
19
Совпадение TO
0013h
20
Готовность SPI
0014h
Первая команда подпрограммы должна представлять собой команду безусловного перехода к той части памяти программы, в которой располагаются основные команды подпрограммы обслуживания прерывания.
В ячейке 0000 – первая команда основной программы (безусловный переход).
Для организации работы системы прерываний предусмотрен ряд регистров, входящих в состав регистров специального назначения. В этих регистрах имеются разряды или флажки, определяющие режим работы системы прерываний.
SREG
I – флаг разрешения прерываний. Если 0 – система работы прерываний запрещена, если 1 – система прерываний работает.
При переходе к подпрограмме, обслуживающую прерываний, автоматически флажок I устанавливается в 0, а при выходе автоматически устанавливается в 1. Если возникает несколько событий прерываний, существуют уровни приоритета (самый высший приоритет с 0001).
В системе прерываний может быть разделение:
Первая группа характеризуется тем, что при возникновении события прерывания и переходе к подпрограмме обслуживающий прерывания флаг сбрасывается.
Вторая группа прерываний характеризуется тем, что переход к подпрограмме, обслуживающей прерывания может возникнуть только во время события прерывания. Если на момент возникновения события и до его окончания прерывания будут запрещены, то после того как прерывания будут завершены оно не будет обслужено.
Для организации внешних прерываний существуют 3 вывода: INT0, INT1, INT2.
Для управления системой прерываний существует ряд регистров:
GICP – регистр разрешения внешних прерываний. Существует 3 разряда, отвечающих за разрешение внешних прерываний. «1» - разрешает, «0» - запрещает.
GIFR – регистр флагов прерываний. Имеется 3 флага, которые при возникновении события прерывания устанавливаются в «1», а при отсутствии в «0».
Для определения режимов работы по входам INT0, INT1 существует регистр MCUCR, четыре разряда которого определяют режим работы входов (INT0, INT1) по два разряда на каждый вход.
00 – прерывание по низкому уровню сигнала на входе.
01 – не используется/зарезервировано.
10 – устанавливается флаг прерывания по совпадающему фронту сигнала на входе.
11 – установка флага по нарастающему сигналу на входе.
MCUCSR – для задания режима работы по входу INT2. Один разряд.
0 – спадающий фронт.
1
Нарастающий
фронт
0
1
Спадающий
фронт
1
0
1
1
0
0