
- •Введение
- •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
- •Контрольные вопросы
- •Литература
1.10. Таймеры/счетчики (timer/counters)
Микроконтроллеры AVR имеют в своем составе от 1 до 4 таймеров/счетчиков с разрядностью 8 или 16 бит, которые могут работать и как таймеры от внутреннего источника тактовой частоты, и как счетчики внешних событий.
Их можно использовать для точного формирования временных интервалов, подсчета импульсов на выводах микроконтроллера, формирования последовательности импульсов, тактирования приемопередатчика последовательного канала связи. В режиме ШИМ (PWM) таймер/счетчик может представлять собой широтно-импульсный модулятор и используется для генерирования сигнала с программируемыми частотой и скважностью. Таймеры/счетчики способны вырабатывать запросы прерываний, переключая процессор на их обслуживание по событиям и освобождая его от необходимости периодического опроса состояния таймеров. Поскольку основное применение микроконтроллеры находят в системах реального времени, таймеры/счетчики являются одним из наиболее важных элементов.
Микроконтроллер ATmega8515 оснащен двумя таймерами/счетчиками – 8 (T/C0) и 16 (T/C1)-разрядным.
1.10.1. Таймер/счетчик t/c0
В состав T/C0 входят три регистра спецфункций:
– счетный регистр TCNT0,
– регистр управления TCCR0,
– регистр сравнения OCR0.
8-разрядный таймер/счетчик0 получает тактовый сигнал или непосредственно от TCK0 или после прохождения его через предварительный делитель.
В регистре флагов прерывания таймеров/счетчиков TIFR хранятся различные флаги состояния регистров (переполнения, совпадения при сравнении). Установки управляющих сигналов хранятся в регистрах управления таймерами/счетчиками TCCR0. Установка разрешения/запрещения прерываний производится в регистре масок прерываний таймеров/счетчиков TIMSK.
Таймер/счетчик поддерживает функцию сравнения выхода OCR0 как источник данных, сравниваемых с содержимым таймера/счетчика. В функции сравнения выхода входит и опция очистки счетчика при совпадении и формирование, при совпадении, сигнала на выводах сравнения выхода – PB0(OC0).
Таймер/счетчик 0 можно использовать как 8-разрядный широтно-импульсный модулятор (PWM). В этом режиме таймер/счетчик, совместно с регистром совпадения выхода работают как автономный ШИМ с центрированными импульсами и без ложных выбросов.
Рис. 20. Блок-схема таймера/счетчика 0
Регистр управления т/с0 - tccr0 (The Timer/Counter0 Control Register) Регистр tccr0 предназначен для управления модулем т/c0. Формат регистра tccr0:
Таблица 10. Формат регистра TCCR0
Биты |
|
|
||||||||
$33 ($53) |
|
TCCR0 |
||||||||
Чтение/Запись |
|
|
||||||||
Начальное состояние |
|
|
Bit 7 –FOC0 – Принудительное изменение состояния вывода ОС0. При записи в этот разряд логической 1 состояние вывода ОС0 изменяется в соответствии с разрядами СОМ00, СОМ01. Прерывания при этом не генерируются.
Bits 6,3 – WGM00, WGM01 – Определяют режим работы таймер/счетчика0.
Таблица 11. Режимы работы T/C0
№ режима |
WGM01 |
WGM00 |
Режим работы |
0 |
0 |
0 |
Normal |
1 |
0 |
1 |
Phase correct PWM |
2 |
1 |
0 |
CTC |
3 |
1 |
1 |
Fast PWM |
Bits 5,4 – СОМ01:СОМ00 – Определяют режим работы блока сравнения. Определяется поведение вывода ОС0 при наступлении события «совпадение».
Bits 2..,0 – CS02,..CS00 – Управление тактовым сигналом. Разряды определяют источник тактового сигнала МК.
Счетный регистр – Таймер/счетчик0 – TCNT0
Регистр TCNT0 входит в состав основного блока модуля – блока реверсивного счетчика. В зависимости от режима работы модуля содержимое счетного регистра сбрасывается, инкрементируется, декрементируется по каждому импульсу тактового сигнала. После подачи питания начальное состояние счетного регистра нулевое.
Таблица 12. Формат регистра TCNT0
Биты |
|
|
||||||||
$32 ($42) |
|
TCNT0 |
||||||||
Чтение/Запись |
|
|
||||||||
Начальное состояние |
|
|