- •Введение
- •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
- •Контрольные вопросы
- •Литература
Регистр управления сторожевым таймером – wdtcr
(Watchdog Timer Control Register)
Таблица 16. Формат регистра WDTCR
Биты |
|
|
||||||||
$21 ($41) |
|
WDTCR |
||||||||
Чтение/Запись |
|
|
||||||||
Начальное состояние |
|
|
Bits 7..5 - Res: - Зарезервированные биты. Эти биты в микроконтроллерах ATmega8515 зарезервированы и при считывании всегда будут 0.
Bit 4 - WDСE: - Разрешение отключения сторожевого таймера. Данный бит должен быть установлен в состояние 1 при очистке бита WDE. В ином случае сторожевой таймер не будет запрещен.
Bit 3 - WDE: - Разрешение сторожевого таймера. Если бит WDE установлен в состояние 1 (сторожевой таймер разрешен) и если бит WDE очищен, то функционирование сторожевого таймера запрещено. Бит WDE может быть очищен только если установлен бит WDСE.
Для запрещения разрешенного сторожевого таймера необходимо выполнить следующую процедуру:
1. В одной операции записать логическую 1 в WDСЕ и WDE. Логическая 1 должна быть записана в WDE даже если этот бит был установлен перед началом операции запрета сторожевого таймера.
2. За время последующих четырех тактовых циклов записать логический 0 в WDE. Сторожевой таймер будет запрещен.
Bits 2..0 - WDP2, WDP1, WDP0: - биты установки коэффициента предварительного деления сторожевого таймера. Состояния битов WDP2, WDP1 и WDP0 определяют коэффициент предварительного деления тактовой частоты разрешенного сторожевого таймера. Коэффициенты и соответствующие им промежутки времени представлены в таблице17.
Таблица 17. Выбор коэффициента предварительного деления тактовой частоты сторожевого таймера
WDP2 |
WDP1 |
WDP0 |
Длительность цикла сторожевого таймера |
0 |
0 |
0 |
16 тыс. циклов |
0 |
0 |
1 |
32 тыс. циклов |
0 |
1 |
0 |
64 тыс. циклов |
0 |
1 |
1 |
128 тыс. циклов |
1 |
0 |
0 |
256 тыс. циклов |
1 |
0 |
1 |
512 тыс. циклов |
1 |
1 |
0 |
1024 тыс. циклов |
1 |
1 |
1 |
2048 тыс. циклов |
МК ATmega8515 предусматривает несколько «уровней безопасности» – (0,1,2), каждый из которых накладывает определенные ограничения по изменению конфигурации сторожевого таймера.
–Уровень 0 – при включении МК сторожевой таймер выключен, но он может быть включен в любой момент времени, записью логической 1 в разряд WDE Rg WDTCR.
–Уровень 1 – при включении МК сторожевой таймер включен. Для выключения сторожевого таймера необходимо одной командой записать логическую 1 в разряды WDE и WDСE, а в течение следующих четырех машинных циклов записать тоже одной командой 1 в WDE и 0 в WDСE. Для изменения периода тайм-аута необходимо одной командой записать логическую 1 в разряды WDE и WDTCE. В течение следующих четырех машинных циклов тоже одной командой установить WDE=1, WDTCE=0 и требуемые значения в разряды WDP2,1,0.
–Уровень 2 – сторожевой таймер включен постоянно (WDE=1 всегда) и не может быть выключен. Для изменения периода тайм-аута необходимо одной командой записать логическую 1 в разряды WDE и WDСE, а в течение следующих 4 машинных циклов записать одной командой требуемые значения в разряды WDР2- WDР0, одновременно сбрасывая разряд WDСE. Значение записываемое в разряд WDE безразлично.