- •Микроконтроллеры
- •Базовая информация о микроконтроллерах
- •Сущность и назначение микроконтроллера. Семейства микроконтроллеров
- •Состав микроконтроллера
- •Назначение микроконтроллера
- •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)
Режим быстрой шим (fastPwMmode)
Режим быстрой ШИМ (рис.) (fast PWM, FPWM) (WGM01:0 = 3) предоставляет возможность генерации сигнала высокой частоты.
Частота сигнала определяется следующей формулой:
,
где N — коэффициент деления частоты.
Рис. Временная диаграмма работы таймера в режиме быстрой ШИМ
Счетчик считает от BOTTOM до MAX, затем снова от BOTTOM до MAX и т. д. Таким образом, период сигнала не изменяется.
В неинверсном режиме выход OC0 сбрасывается при совпадении TCNT0 и OCR0 и устанавливается при BOTTOM. В инверсном режиме выход OC0 устанавливается при совпадении TCNT0 и OCR0 и сбрасывается при BOTTOM.
Поскольку счетчик к этом режиме считает только вверх, и выход может переключаться дважды за один цикл счета, то частота выходного сигнала может быть в два раза больше, чем в режиме ШИМ с корректировкой фазы.
Флаг переполнения устанавливается при переходе счетчика через значение MAX. Обработчик прерывания может изменить значение OCR0.
Крайние значения регистра OCR0 представляют специальные случаи генерации сигнала:
OCR0=BOTTOM — выходной сигнал является узким импульсом при каждом MAX+1 такте;
OCR0=MAX — выходной сигнал является постоянной единицей или нулем.
Режим шим с корректировкой фазы (Phase Correct pwm Mode)
В режиме ШИМ с корректировкой фазы (Phase Correct PWM, PCPWM) счетчик считает в обе стороны, сначала от BOTTOM до MAX, а затем от MAX до BOTTOM (рис.).
В неинверсном режиме работы выхода OC0 сбрасывается при совпадении при счете вверх, устанавливается при совпадении при счете вниз, в инверсном, наоборот, устанавливается при совпадении при счете вверх, сбрасывается при совпадении при счете вниз.
Рис. Временная диаграмма работы таймера в режиме ШИМ с корректировкой фазы
Благодаря симметричности, этот режим предпочтителен для управления двигателями.
Разрешение ШИМ в этом режиме фиксировано и составляет 8 бит.
Флаг TOV0 устанавливается при достижении счетчиком значения BOTTOM.
Частота сигнала в режиме ШИМ с корректировкой фазы определяется следующей формулой:
,
где N — коэффициент деления частоты.
Крайние значения регистра OCR0 представляют специальные случаи генерации сигнала:
OCR0=BOTTOM — выходной сигнал является постоянным нулем в неинверсном и постоянной единицей в инверсном режиме;
OCR0=MAX — выходной сигнал является постоянной единицей в неинверсном и постоянным нулем в инверсном режиме.
В начале периода 2 выход меняет свое значение, даже если не происходит совпадения сравниваемых значений. Это определяется требованиями поддержания симметрии относительно BOTTOM.
Существует два случая, когда выход меняет свое значение без совпадения сравниваемых значений:
изменение значения регистра OCR0 с MAX. Когда OCR0=MAX, значение выхода такое же, как в результате совпадения при счете вниз. Для обеспечения симметрии относительно BOTTOM необходимо, чтобы значение выхода при значении MAX соответствовало результату совпадения при счете вверх;
таймер начинает счет со значения, большего чем OCR0, и таким образом, пропускает совпадение и соответствующее изменение выхода при счете вверх.