- •Микроконтроллеры
- •Базовая информация о микроконтроллерах
- •Сущность и назначение микроконтроллера. Семейства микроконтроллеров
- •Состав микроконтроллера
- •Назначение микроконтроллера
- •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)
Режимы работы таймера t1
Список режимов работы таймера t1
Таймер T1 имеет пять режимов работы:
режим Normal (WGM13:0=0), такой же, как у T0, только MAX=0xFFFF;
режим CTC, также похож на одноименный режим у T0, но TOP может быть задан либо в OCR1A (WGM13:0=4), либо в ICR1 (WGM13:0=12);
режим быстрой ШИМ (fast PWM, FPWM), счетчик инкрементируется до значений 0x00FF, 0x01FF, 0x03FF (WGM13:0 = 5, 6, 7), ICR1 (WGM13:0 = 14) или OCR1A (WGM13:0 = 15);
режим ШИМ с корректировкой фазы (Phase Correct PWM, PCPWM), счетчик инкрементируется от BOTTOM до TOP, которое может принимать значения 0x00FF, 0x01FF, 0x03FF (WGM13:0 = 1, 2, 3), ICR1 (WGM13:0 = 10) или OCR1A (WGM13:0 = 11), а затем от TOP до BOTTOM;
режим ШИМ с корректировкой фазы и частоты (Phase and Frequency Correct PWM, PFCPWM), счетчик инкрементируется от BOTTOM до TOP, которое задается ICR1 (WGM13:0 = 8) или OCR1A (WGM13:0 = 9), а затем от TOP до BOTTOM.
Режим быстрой шим (fast pwm mode) таймера t1
Режим быстрой ШИМ T1 (рис.) отличается от такового у таймера T0. Здесь счетчик инкрементируется до значений 0x00FF, 0x01FF, 0x03FF (WGM13:0 = 5, 6, 7), ICR1 (WGM13:0 = 14) или OCR1A (WGM13:0 = 15).
Частота сигнала определяется следующей формулой:
,
где N — коэффициент деления частоты.
Рис. Временная диаграмма работы таймера T1 в режиме быстрой ШИМ
Режим шим с корректировкой фазы (Phase Correct pwm Mode) таймера t1
В режиме ШИМ с корректировкой фазы счетчик считает в обе стороны, сначала от BOTTOM до TOP, а затем от TOP до BOTTOM (рис.).
При этом TOP может принимать следующие значения 0x00FF, 0x01FF, 0x03FF (WGM13:0 = 1, 2, 3), ICR1 (WGM13:0 = 10) или OCR1A (WGM13:0 = 11).
Отсюда, разрешение ШИМ в этом режиме может составлять 8, 9, 10 бит или задаваться регистрами ICR1 или OCR1A. Таким образом, минимальное разрешение составляет 2 бита (значение ICR1 или OCR1A равно 0x0003), а максимальное — 16 бит (значение ICR1 или OCR1A равно MAX).
В неинверсном режиме работы выхода OC0 сбрасывается при совпадении при счете вверх, устанавливается при совпадении при счете вниз, в инверсном, наоборот, устанавливается при совпадении при счете вверх, сбрасывается при совпадении при счете вниз.
Рис. Временная диаграмма работы таймера T1 в режиме ШИМ с корректировкой фазы
На рис. TOP задается регистрами ICR1 и OCR1A. Когда TOP задается ICR1, устанавливается флаг прерывания ICF1, а когда — OCR1A, устанавливается флаг прерывания OCF1A.
Флаг TOV0 устанавливается при достижении счетчиком значения BOTTOM.
Частота сигнала в режиме ШИМ с корректировкой фазы определяется следующей формулой:
,
где N — коэффициент деления частоты: 1, 8, 64, 256 или 1024.
В этом режиме выход может быть как симметричным, так и асимметричным. Асимметричность появляется по причине того, что значение регистра OCR1A обновляется при достижении счетным регистром значения TOP. В симметричном случае этот режим может использоваться для управления двигателями.
Крайние значения регистра OCR1A представляют специальные случаи генерации сигнала:
OCR1A=BOTTOM — выходной сигнал является постоянным нулем в неинверсном и постоянной единицей в инверсном режиме;
OCR1A=TOP — выходной сигнал является постоянной единицей в неинверсном и постоянным нулем в инверсном режиме.
Если OCR1A используется для задания TOP (WGM13:0 = 11) и COM1A1:0 = 1, то скважность сигнала на выходе OC1A составит 0,5.