- •Микроконтроллеры
- •Базовая информация о микроконтроллерах
- •Сущность и назначение микроконтроллера. Семейства микроконтроллеров
- •Состав микроконтроллера
- •Назначение микроконтроллера
- •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)
Таймер t0
Назначение и свойства таймера t0
Таймер T0 — 8-разрядный одноканальный таймер-счетчик общего назначения (рис.), который может быть использован как:
одноканальный счетчик;
сбрасывающийся (автоматически перезагружаемый) таймер при совпадении сравниваемых значений;
широтно-импульсный модулятор, ШИМ, (PWM, Pulse Width Modulator);
генератор частоты;
счетчик внешних событий;
10-битный делитель частоты;
источник прерывания по переполнению(TOV0) и совпадению (OCF0).
Структура таймера t0
Рис. Схема структуры таймера T0
На схеме жирным шрифтом выделены программно-доступные регистры и отдельные биты.
Запросы прерываний таймера фиксируются в регистре флагов прерываний таймера (Timer Interrupt Flag Register, TIFR).
Они могут быть замаскированы с помощью регистра масок прерываний таймера (Timer Interrupt Mask Register, TIMSK).
Таймер может иметь внутренний, с предварительным делением частоты, или внешний, на входе T0, источник тактовых импульсов. При этом вход T0 является синхронным, т.е., сигнал на входе T0 сэмплируется один раз за каждый внутренний такт MCU. Поэтому для правильного подсчета входных тактовых импульсов (при скважности 0,5) необходимо, чтобы их частота была меньше, чем половина внутренней тактовой частоты контроллера.
Каждый импульс инкрементирует или декрементирует регистр TCNT0, значение которого в каждом такте сравнивается со значением регистра OCR0 (Output Compare Register). Результат сравнения может быть использован для генерации сигнала PWM или переменной частоты на выходе OC0 (Output Compare). Также при совпадении устанавливается флаг OCF0, который может быть использован для генерации соответствующего сигнала запроса прерывания.
Источник тактовых импульсов задается битами CS02:0 (Clock Select) регистра TCCR0 (Timer/Counter Control Register). Если не выбран никакой источник тактовых импульсов, таймер останавливается. Однако и в этом случае счетный регистр TCNT0 является доступным для CPU. Операция записи TCNT0 процессором имеет более высокий приоритет, чем внутренние текущие операции, например, счет или сброс.
Режим работы таймера определяется битами WGM01:0 регистра TCCR0. В соответствии с заданным режимом работы устанавливается флаг переполнения таймера TOV0 (Timer/Counter Overflow Flag), который может быть использован для генерации соответствующего прерывания.
Регистры таймера t0
Таймер T0 содержит следующие регистры:
TCCR0 (Timer/Counter Control Register), регистр управления, определяет входной тактовый сигнал, задает режимы генерации сигнала и работы выхода;
TCNT0 (Timer/Counter Register), счетный регистр, считает такты внутреннего или внешнего, на входе T0, тактового сигнала;
OCR0 (Output Compare Register), регистр сравнения, содержит значение, которое в каждом такте сравнивается со значением TCNT0, при совпадении сравниваемых значений может быть сгенерировано прерывание или заданное изменение сигнала на выходе OC0.
Все регистры таймера T0 восьмибитные.