- •Микроконтроллеры
- •Базовая информация о микроконтроллерах
- •Сущность и назначение микроконтроллера. Семейства микроконтроллеров
- •Состав микроконтроллера
- •Назначение микроконтроллера
- •Cемейства микроконтроллеров
- •Отправная точка. Микроконтроллерi8051
- •Основные характеристики микроконтроллераi8051
- •Назначение выводовi8051
- •Структурная схемаi8051
- •Микроконтроллеры семействаavrкомпанииatmel
- •Общая характеристика архитектуры, системы команд и ассемблераAvr
- •Состав семейства и основные характеристики микроконтроллеровAvr
- •Структура ассемблерного кодаAvr
- •Группы команд микроконтроллеров avr
- •Директивы ассемблераAvr
- •Список директив ассемблераAvr
- •Директива byte
- •Директива cseg
- •Директива db
- •Директива def
- •Директива device
- •Директива dseg
- •Директива dw
- •Директивы macro иEndmacro
- •Директива equ
- •Директива set
- •Микроконтроллер atmega8535
- •Характеристики, назначение выводов и структура микроконтроллера aTmega8535
- •Характеристики микроконтроллера aTmega8535
- •Назначение выводов микроконтроллера aTmega8535
- •Структура микроконтроллера aTmega8535
- •Сброс микроконтроллера aTmega8535. Режимы пониженного энергопотребления. Сигналы запроса внешних прерываний. Регистры управления
- •Сброс микроконтроллера aTmega8535
- •Регистр mcucsr (mcu Control and Status Register)
- •Регистр mcucr (mcu Control Register)
- •Режимы пониженного энергопотребления
- •Форма сигналов запроса внешних прерываний
- •Регистры общего назначения, регистр состояния и указатель стека микроконтроллера aTmega8535
- •Регистры общего назначения
- •Регистр состояния (sreg)
- •Указатель стека
- •Ввод-вывод
- •Регистры и команды ввода-вывода
- •Порты ввода-вывода
- •Прерывания
- •Источники и таблица векторов прерываний
- •Регистр gicr (General Interrupt Control Register)
- •Внешние прерывания
- •Регистр gifr (General Interrupt Flag Register)
- •Таймеры микроконтроллера aTmega8535
- •Общая информация о таймерах микроконтроллера aTmega8535
- •Множество таймеров aTmega8535
- •Регистр timsk (Timer/Counter Interrupt Mask Register)
- •Регистр tifr (Timer/Counter Interrupt Flag Register)
- •Примеры программ работы с таймером
- •Таймер t0
- •Назначение и свойства таймера t0
- •Структура таймера t0
- •Регистры таймера t0
- •Регистр tccr0 (Timer/Counter Control Register)
- •Устройство сравнения таймера t0
- •Режимы работы таймера t0
- •Режим Normal
- •Режим ctc
- •Режим быстрой шим (fastPwMmode)
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode)
- •Таймер t1
- •Назначение и свойства таймера t1
- •Структура таймера t1
- •Регистры таймера t1
- •Регистр tccr1a (Timer/Counter1 Control Register a)
- •Регистр tccr1b (Timer/Counter1 Control Register b)
- •Задание режима генерации сигнала битами wgm13:0
- •Устройство захвата (Input Capture Unit)
- •Режимы работы таймера t1
- •Список режимов работы таймера t1
- •Режим быстрой шим (fast pwm mode) таймера t1
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode) таймера t1
- •Режим шим с корректировкой фазы и частоты (Phase and Frequency Correct pwm Mode) таймера t1
- •Таймер t2
- •Назначение и свойства таймера t2
- •Структура таймера t2
- •Регистры таймера t2
- •Регистр tccr2 (Timer/Counter Control Register)
- •Устройство сравнения таймера t2
- •Режимы работы таймера t2
- •Режим Normal
- •Режим ctc
- •Режим быстрой шим (fast pwm mode)
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode)
- •Асинхронный режим работы таймера t2. Регистр assr (Asynchronous Status Register)
Устройство сравнения таймера t2
Структура устройства сравнения приведена на рис.
Рис. Структура устройства сравнения
8-битный компаратор непрерывно сравнивает счетный регистр TCNT2 с регистром OCR2 (Output Compare Register). Флаг OCF2 (Output Compare Flag) устанавливается в следующем такте после того, как значения TCNT2 и OCR2 станут равны. Если I=1 и OCIE2=1, OCF2 генерирует соответствующее прерывание. Флаг OCF2 сбрасывается после перехода к обработчику прерывания. Также он может быть сброшен программно записью в него логической единицы.
Генератор сигнала использует сигнал совпадения для генерации сигнала на выходе в соответствии с режимом генерации сигнала, заданным битами WGM21:0, и режимом работы выхода, заданным битами COM21:0 (Compare Output mode).
В режимах, отличных от ШИМ, выход OC2 может быть принудительно активирован установкой бита FOC2 (Force Output Compare) регистра TCCR2. При этом флаг OCF2 не устанавливается, таймер не сбрасывается и не перезапускается.
Запись процессором регистра TCNT2 блокирует сравнение на один такт, даже если таймер остановлен. Это позволяет инициализировать OCR2 тем же значением, что и TCNT2.
Рис. Схема формирования сигнала на выходе OC2
Бит OC2, соответствующий выводу PD7, должен быть предварительно настроен на вывод с помощью регистра направления порта D DDRD.
Режимы работы определяются комбинацией битов WGM21:0 (Waveform Generation mode) и COM21:0 (Compare Output mode) регистра TCCR2.
Режимы работы таймера t2
Режим Normal
Самый простой режим — Normal (WGM21:0 = 0). В этом режиме счетчик считает вверх и никогда не сбрасывается. Счетчик просто переходит через максимальное значение 0xFF к 0x00 и начинает счет заново. В этом режиме флаг переполнения TOV2 будет установлен в такте, когда TCNT2 станет равным нулю. Новое значение TCNT2 может быть записано в него в любой момент. Использовать сравнение для генерации сигнала в нормальном режиме не рекомендуется, поскольку это занимает слишком много процессорного времени.
Режим ctc
В режиме CTC (рис.) (Clear Timer on Compare, сброс при совпадении) (WGM21:0 = 2) регистр OCR2 используется для управления разрешением счетчика, поскольку задает максимальное значение счета. В этом режиме TCNT2 сбрасывается, когда его значение становится равным OCR2. Этот режим удобен для управления частотой выходного сигнала и подсчета внешних событий.
Рис. Временная диаграмма режима CTC.
Горизонтальные штрихи на рисунке иллюстрируют совпадение значений регистров OCR2 и TCNT2.
При совпадении TCNT2 и OCR2 устанавливается флаг OCF2 и генерируется соответствующее прерывание. Обработчик прерывания может изменить значение OCR2.
Частота сигнала определяется следующей формулой:
где N — коэффициент деления частоты: 1, 8, 32, 64, 128, 256 или 1024.
Период сигнала может изменяться.
Прерывание по переполнению в этом режиме генерируется, если счетчик переходит максимальное значение.
Режим быстрой шим (fast pwm mode)
Режим быстрой ШИМ (рис.) (fast PWM, FPWM) (WGM21:0 = 3) предоставляет возможность генерации сигнала высокой частоты.
Частота сигнала определяется следующей формулой:
,
где N — коэффициент деления частоты.
Рис. Временная диаграмма работы таймера в режиме быстрой ШИМ
Счетчик считает от BOTTOM до MAX, затем снова от BOTTOM до MAX и т. д. Таким образом, период сигнала не изменяется.
В неинверсном режиме выход OC2 сбрасывается при совпадении TCNT2 и OCR2 и устанавливается при BOTTOM. В инверсном режиме выход OC2 устанавливается при совпадении TCNT2 и OCR2 и сбрасывается при BOTTOM.
Поскольку счетчик к этом режиме считает только вверх, и выход может переключаться дважды за один цикл счета, то частота выходного сигнала может быть в два раза больше, чем в режиме ШИМ с корректировкой фазы.
Флаг переполнения устанавливается при переходе счетчика через значение MAX. Обработчик прерывания может изменить значение OCR2.
Крайние значения регистра OCR2 представляют специальные случаи генерации сигнала:
OCR2=BOTTOM — выходной сигнал является узким импульсом при каждом MAX+1 такте;
OCR2=MAX — выходной сигнал является постоянной единицей или нулем.