- •Введение
- •1. Омэвм avr семейства Mega
- •1.1. Технические характеристики микроконтроллера avr aTmega8515
- •1.2 Условное графическое обозначение (уго) микроконтроллера avr aTmega8515
- •1.3. Структура микроконтроллера аTmega8515
- •1.4. Организация памяти
- •1.4.1. Карта памяти
- •1.4.2. Память программ (Flash – пзу)
- •1.4.3. Память данных
- •Регистровая память (рон и рвв)
- •Файл регистров общего назначения
- •Регистр X, регистр y и регистр z
- •Регистр статуса – sreg
- •1.4.4. Оперативная память (озу или ram)
- •Регистр управления mcu - mcu Control Register - mcucr
- •1.4.5. Энергонезависимая память данных (eeprom)
- •1.5. Режимы адресации памяти данных
- •1.7. Стек. Указатель стека - Stack Pointer - sp
- •1.8. Тактирование. Режимы пониженного энергопотребления
- •1.8.1. Тактовый генератор
- •Система реального времени (rtc)
- •1.8.2. Сброс. Источники сброса
- •Сброс по включению питания
- •Внешнее управление сбросом
- •Сброс по сторожевому таймеру
- •1.8.3. Режимы энергосбережения (Sleep Modes)
- •1.9. Прерывания (interrupts)
- •Время отклика на прерывание
- •Обработка прерываний и сброса
- •Регистр флагов прерываний – gifr (General Interrupt Flag Register)
- •Регистр управления внешними прерываниями – gicr
- •Регистр масок прерывания по таймерам/счетчикам - timsk (Timer/Counter Interrupt Mask Register)
- •Регистр флагов прерываний по таймерам/счетчикам tifr
- •1.10. Таймеры/счетчики (timer/counters)
- •1.10.1. Таймер/счетчик t/c0
- •Регистр управления т/с0 - tccr0 (The Timer/Counter0 Control Register) Регистр tccr0 предназначен для управления модулем т/c0. Формат регистра tccr0:
- •Регистр сравнения выхода т/с0
- •Режимы работы т/с0
- •Изменение состояния ос0 определяется разрядами сом01:сом00 регистра tccr0 (состояние вывода ос0 изменяется в соответствии с таблицей 11).
- •1.10.2. Таймер/счетчик 1 – t/c1
- •1.11. Сторожевой таймер (Watchdog Timer)
- •Регистр управления сторожевым таймером – wdtcr
- •1.12. Универсальный синхронно-асинхронный приемопередатчик (usart)
- •Регистр данных usart - udr - (usart I/o Data Register)
- •Регистр ucsra
- •Регистр ucsrв
- •Регистр ucsrс
- •Формат кадра
- •Скорость обмена данными
- •Передача данных
- •Прием данных
- •1.13. Последовательный периферийный интерфейс spi
- •1.14. Аналоговый компаратор (Analog Comparator)
- •2. Система команд
- •Команды логических операций
- •Команды арифметических операций и сдвига
- •Команды операций с битами
- •Команды пересылки данных
- •Команды передачи управления
- •Теоретическая часть
- •1.1. Методические указания по выполнению лабораторной работы
- •1.1.1. Создайте новый проект.
- •1.1.2. Напишите и отладьте программу lab1
- •. Содержание отчета
- •3.2. Практическая работа №1 Изучение системы команд мк avr aTmega8515
- •2. Содержание отчета
- •3.3. Лабораторная работа №2 Изучение работы с портами ввода/вывода мк avr
- •Контрольные вопросы
- •Литература
Обработка прерываний и сброса
Микроконтроллер ATmega8515 использует 16 источников прерывания. Эти прерывания и вектор сброса располагают отдельными программными векторами в пространстве памяти программ. Каждому прерыванию присвоен свой бит разрешения который должен быть установлен совместно с битом I регистра статуса SREG.
Младшие адреса пространства памяти программ автоматически определяются как векторы сброса и прерываний.
Полный перечень векторов представлен в Таблице 5. Перечень представляет также уровень приоритета для каждого прерывания. Прерывания с младшими адресами имеют больший уровень приоритета. RESET имеет наивысший уровень приоритета, следующим является INT0 – Запрос внешнего прерывания 0 и т.д.
Таблица 5. Векторы сброса и прерываний
Vector No. |
Program Address |
Source |
Interrupt Definition |
1 |
$0000 |
RESET |
Сброс по выводу и сторожевому таймеру (Hardware Pin and Watchdog Reset) |
2 |
$0001 |
INT0 |
Запрос внешнего прерывания 0 (External Interrupt Request 0) |
3 |
$0002 |
INT1 |
Запрос внешнего прерывания 1 (External Interrupt Request 1) |
4 |
$0003 |
TIMER1 CAPT |
Захват таймера/счетчика 1 (Timer/Counter1 Capture Event) |
5 |
$0004 |
TIMER1 COMPA |
Совпадение A при сравнении таймера/счетчика 1 (Timer/Counter1 Compare Match A) |
6 |
$0005 |
TIMER1 COMPB |
Совпадение B при сравнении таймера/счетчика 1 (Timer/Counter1 Compare Match B) |
7 |
$0006 |
TIMER1 OVF |
Переполнение таймера/счетчика 1 (Timer/Counter1 Overflow) |
8 |
$0007 |
TIMER0 OVF |
Переполнение таймера/счетчика 0 (Timer/Counter0 Overflow) |
9 |
$0008 |
SPI, STC |
Завершение пересылки SPI (SPI Serial Transfer Complete) |
10 |
$0009 |
USART, RXC |
Завершение приема USART (USART, Rx Complete) |
11 |
$000A |
USART, UDRE |
Регистр данных USART пуст (USART Data Register Empty) |
12 |
$000B |
USART, TX |
Завершение передачи USART (USART, Tx Complete) |
13 |
$000C |
ANALOG COMP |
Срабатывание аналогового компаратора (Analog Comparator) |
14 |
$000D |
INT2 |
Запрос внешнего прерывания 2 (External Interrupt Request 2) |
15 |
$000E |
TIMER0 COMP |
Совпадение при сравнении таймера/счетчика 0 (Timer/Counter0 Compare Match) |
16 |
$000F |
EE READY |
Готовность EEPROM (EEPROM Ready) |
17 |
$0010 |
SPM RDY |
Готовность SPM |