- •Микроконтроллеры
- •Базовая информация о микроконтроллерах
- •Сущность и назначение микроконтроллера. Семейства микроконтроллеров
- •Состав микроконтроллера
- •Назначение микроконтроллера
- •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)
Режим шим с корректировкой фазы и частоты (Phase and Frequency Correct pwm Mode) таймера t1
В режиме ШИМ с корректировкой фазы и частоты счетчик также считает в обе стороны, сначала от BOTTOM до TOP, а затем от TOP до BOTTOM (рис.).
При этом TOP может задаваться регистрами ICR1 (WGM13:0 = 8) или OCR1A (WGM13:0 = 9).
Минимальное разрешение составляет 2 бита (значение ICR1 или OCR1A равно 0x0003), а максимальное — 16 бит (значение ICR1 или OCR1A равно MAX).
В неинверсном режиме работы выхода OC0 сбрасывается при совпадении при счете вверх, устанавливается при совпадении при счете вниз, в инверсном, наоборот, устанавливается при совпадении при счете вверх, сбрасывается при совпадении при счете вниз.
Рис. Временная диаграмма работы таймера T1 в режиме ШИМ с корректировкой фазы и частоты
Когда TOP задается ICR1, устанавливается флаг прерывания ICF1, а когда — OCR1A, устанавливается флаг прерывания OCF1A, когда TCNT1 достигает значения TOP.
Флаг TOV0 устанавливается при достижении счетчиком значения BOTTOM.
Частота сигнала в режиме ШИМ с корректировкой фазы определяется следующей формулой:
,
где N — коэффициент деления частоты: 1, 8, 64, 256 или 1024.
В этом режиме значение OCR1A обновляется при достижении счетчиком значения BOTTOM. Поэтому выходной сигнал всегда симметричен. Благодаря симметричности, этот режим предпочтителен для управления двигателями.
Крайние значения регистра OCR1A представляют специальные случаи генерации сигнала:
OCR1A = BOTTOM — выходной сигнал является постоянным нулем в неинверсном и постоянной единицей в инверсном режиме;
OCR1A = TOP — выходной сигнал является постоянной единицей в неинверсном и постоянным нулем в инверсном режиме.
Если OCR1A используется для задания TOP (WGM13:0 = 9) и COM1A1:0 = 1, то скважность сигнала на выходе OC1A составит 0,5.
Таймер t2
Назначение и свойства таймера t2
Таймер T2 — 8-разрядный одноканальный таймер-счетчик общего назначения (рис.), который может быть использован как:
одноканальный счетчик;
сбрасывающийся (автоматически перезагружаемый) таймер при совпадении сравниваемых значений;
широтно-импульсный модулятор, ШИМ, (PWM, Pulse Width Modulator);
генератор частоты;
10-битный делитель частоты;
источник прерывания по переполнению(TOV0) и совпадению (OCF0).
В отличие от таймера T0, таймер T2 не имеет входа для приема внешнего сигнала и соответственно, не может быть использован как счетчик внешних событий. Но зато он имеет внутренний источник тактовой частоты с выводами для подключения кварцевого резонатора частотой 32 КГц.
Структура таймера t2
Рис. Схема структуры таймера T2
На схеме жирным шрифтом выделены программно-доступные регистры и отдельные биты программно-доступных регистров.
Запросы прерываний таймера фиксируются в регистре флагов прерываний таймера (Timer Interrupt Flag Register, TIFR).
Они могут быть разрешены или запрещены с помощью регистра масок прерываний таймера (Timer Interrupt Mask Register, TIMSK).
Таймер может тактироваться синхронно (на рис. clkI/O) или асинхронно с помощью внутреннего генератора (T/C Oscillator), стабилизируемого кварцем, подключаемым к выводам TOSC1/2. Синхронный или асинхронный режим выбирается с помощью регистра ASSR (Asynchronous Status Register). Также этот регистр используется для корректной записи остальных регистров таймера Т2 в асинхронном режиме.
На выбранный источник тактовых импульсов влияет поле CS02:0 (Clock Select) регистра TCCR2 (Timer/Counter Control Register). Его частота может быть поделена или он вообще может быть отключен, и тогда таймер останавливается. Однако и в этом случае счетный регистр TCNT2 является доступным для CPU. Операция записи TCNT2 процессором имеет более высокий приоритет, чем внутренние текущие операции, например, счет или сброс.
Каждый импульс инкрементирует или декрементирует регистр TCNT2, значение которого в каждом такте сравнивается со значением регистра OCR2 (Output Compare Register). Результат сравнения может быть использован для генерации заданного сигнала на выходе OC2 (Output Compare). Также при совпадении устанавливается флаг OCF2, который может быть использован для генерации соответствующего сигнала запроса прерывания.
Режим работы таймера определяется битами WGM01:0 регистра TCCR2. В соответствии с заданным режимом работы устанавливается флаг переполнения таймера TOV2 (Timer/Counter Overflow Flag), который может быть использован для генерации соответствующего прерывания.