Перейти к содержанию

Таймер-счётчик 4 (10 бит, быстрый) ATmega32U4: регистры и биты

10-битный быстрый таймер-счётчик 4: тактируется от системной частоты или от PLL через делитель PLLTM, каналы сравнения OCR4A, OCR4B и OCR4D управляют выводами OC4A, OC4B и OC4D и их инверсиями, период ШИМ задаёт OCR4C. Генератор мёртвого времени (DT4) разносит фронты дополняющих выходов, защита от аварии (TCCR4D) отключает выходы по выводу или по компаратору. Старшие два бита 10-битных значений проходят через общий регистр TC4H.

Данные: описание ATmega32U4 из пакета Microchip ATmega_DFP 3.6.299 (Apache-2.0), сверено со сводкой регистров даташита 7766J.

Регистры блока

РегистрАдресНазначениеПосле сброса
TIFR40x39 (I/O 0x19)Флаги прерываний таймера 40x00
TIMSK40x72Маска прерываний таймера 40x00
TCNT40xBEСчётный регистр таймера 40x00
TC4H0xBFСтаршие биты таймера 4 (общий временный регистр)0x00
TCCR4A0xC0Управление таймером 4, регистр A0x00
TCCR4B0xC1Управление таймером 4, регистр B0x00
TCCR4C0xC2Управление таймером 4, регистр C0x00
TCCR4D0xC3Управление таймером 4, регистр D0x00
TCCR4E0xC4Управление таймером 4, регистр E0x00
OCR4A0xCFРегистр сравнения A таймера 40x00
OCR4B0xD0Регистр сравнения B таймера 40x00
OCR4C0xD1Регистр сравнения C таймера 4—
OCR4D0xD2Регистр сравнения D таймера 40x00
DT40xD4Мёртвое время таймера 40x00

Конструктор значения

Выберите регистр и включите нужные биты — конструктор покажет значение и строку кода на C и ассемблере. Начальное значение — после сброса.

Исходные данные

Результат

Значение
0x00
Двоичное, биты 7…0
0000 0000

C (avr-gcc, avr/io.h)

TCCR4A = 0;

Ассемблер Microchip (m32u4def.inc)

ldi r16, 0x00
sts TCCR4A, r16

TIFR4 — флаги прерываний таймера 4

Адрес 0x39 (I/O 0x19), 8 бит, после сброса 0x00.

Бит76543210
ИмяOCF4DOCF4AOCF4B——TOV4——
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сброса00000000
  • OCF4D (бит 7) — Флаг совпадения с OCR4D. Ставится аппаратно, сбрасывается при входе в обработчик прерывания или записью единицы в этот бит.
  • OCF4A (бит 6) — Флаг совпадения с OCR4A. Ставится аппаратно, сбрасывается при входе в обработчик прерывания или записью единицы в этот бит.
  • OCF4B (бит 5) — Флаг совпадения с OCR4B. Ставится аппаратно, сбрасывается при входе в обработчик прерывания или записью единицы в этот бит.
  • TOV4 (бит 2) — Флаг переполнения таймера 4. Ставится аппаратно, сбрасывается при входе в обработчик прерывания или записью единицы в этот бит.

TIMSK4 — маска прерываний таймера 4

Адрес 0x72, 8 бит, после сброса 0x00.

Бит76543210
ИмяOCIE4DOCIE4AOCIE4B——TOIE4——
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сброса00000000
  • OCIE4D (бит 7) — Прерывание по совпадению с OCR4D.
  • OCIE4A (бит 6) — Прерывание по совпадению с OCR4A.
  • OCIE4B (бит 5) — Прерывание по совпадению с OCR4B.
  • TOIE4 (бит 2) — Прерывание по переполнению таймера 4.

TCNT4 — счётный регистр таймера 4

Адрес 0xBE, 8 бит, после сброса 0x00.

Регистр данных: все восемь битов — одно число.

TC4H — старшие биты таймера 4 (общий временный регистр)

Адрес 0xBF, 8 бит, после сброса 0x00.

Регистр данных: все восемь битов — одно число.

TCCR4A — управление таймером 4, регистр A

Адрес 0xC0, 8 бит, после сброса 0x00.

Бит76543210
ИмяCOM4A1COM4A0COM4B1COM4B0FOC4AFOC4BPWM4APWM4B
ДоступR/WR/WR/WR/WWWR/WR/W
После сброса00000000
  • COM4A1:0 (биты 7:6) — Режим вывода OC4A. Что делается с выводом при совпадении, зависит от режима таймера: в режимах ШИМ те же значения битов означают другое, у каждого режима в даташите своя таблица.
  • COM4B1:0 (биты 5:4) — Режим вывода OC4B. Что делается с выводом при совпадении, зависит от режима таймера: в режимах ШИМ те же значения битов означают другое, у каждого режима в даташите своя таблица.
  • FOC4A (бит 3) — Принудительное совпадение для OC4A.
  • FOC4B (бит 2) — Принудительное совпадение для OC4B.
  • PWM4A (бит 1) — ШИМ канала A таймера 4.
  • PWM4B (бит 0) — ШИМ канала B таймера 4.

TCCR4B — управление таймером 4, регистр B

Адрес 0xC1, 8 бит, после сброса 0x00.

Бит76543210
ИмяPWM4XPSR4DTPS41DTPS40CS43CS42CS41CS40
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сброса00000000
  • PWM4X (бит 7) — Инверсия выходов ШИМ таймера 4.
  • PSR4 (бит 6) — Сброс предделителя таймера 4.
  • DTPS41:0 (биты 5:4) — Предделитель мёртвого времени таймера 4.
  • CS43:0 (биты 3:0) — Тактирование таймера 4: источник и предделитель.

TCCR4C — управление таймером 4, регистр C

Адрес 0xC2, 8 бит, после сброса 0x00.

Бит76543210
ИмяCOM4A1SCOM4A0SCOM4B1SCOM4B0SCOM4D1 / COM4D1SCOM4D0 / COM4D0SFOC4DPWM4D
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сброса00000000
  • COM4A1S (бит 7) — Копия бита COM4A1.
  • COM4A0S (бит 6) — Копия бита COM4A0.
  • COM4B1S (бит 5) — Копия бита COM4B1.
  • COM4B0S (бит 4) — Копия бита COM4B0.
  • COM4D1:0 (биты 3:2) — Режим вывода OC4D. Что делается с выводом при совпадении, зависит от режима таймера: в режимах ШИМ те же значения битов означают другое, у каждого режима в даташите своя таблица.
  • FOC4D (бит 1) — Принудительное совпадение для OC4D.
  • PWM4D (бит 0) — ШИМ канала D таймера 4.

TCCR4D — управление таймером 4, регистр D

Адрес 0xC3, 8 бит, после сброса 0x00.

Бит76543210
ИмяFPIE4FPEN4FPNC4FPES4FPAC4FPF4WGM41WGM40
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сброса00000000
  • FPIE4 (бит 7) — Прерывание защиты от аварии.
  • FPEN4 (бит 6) — Защита от аварии включена.
  • FPNC4 (бит 5) — Подавление помех на входе защиты.
  • FPES4 (бит 4) — Фронт срабатывания защиты.
  • FPAC4 (бит 3) — Защита по аналоговому компаратору.
  • FPF4 (бит 2) — Флаг срабатывания защиты.
  • WGM41:0 (биты 1:0) — Режим работы таймера 4 (WGM).

TCCR4E — управление таймером 4, регистр E

Адрес 0xC4, 8 бит, после сброса 0x00.

Бит76543210
ИмяTLOCK4ENHC4OC4OE5OC4OE4OC4OE3OC4OE2OC4OE1OC4OE0
ДоступRRR/WR/WR/WR/WR/WR/W
После сброса00000000
  • TLOCK4 (бит 7) — Блокировка обновления регистров сравнения.
  • ENHC4 (бит 6) — Расширенный режим: ещё один бит точности сравнения.
  • OC4OE5:0 (биты 5:0) — Разрешение выходов OC4x и их инверсий.

OCR4A — регистр сравнения A таймера 4

Адрес 0xCF, 8 бит, после сброса 0x00.

Регистр данных: все восемь битов — одно число.

OCR4B — регистр сравнения B таймера 4

Адрес 0xD0, 8 бит, после сброса 0x00.

Регистр данных: все восемь битов — одно число.

OCR4C — регистр сравнения C таймера 4

Адрес 0xD1, 8 бит.

Регистр данных: все восемь битов — одно число.

OCR4D — регистр сравнения D таймера 4

Адрес 0xD2, 8 бит, после сброса 0x00.

Регистр данных: все восемь битов — одно число.

DT4 — мёртвое время таймера 4

Адрес 0xD4, 8 бит, после сброса 0x00.

Бит76543210
ИмяDT4H3DT4H2DT4H1DT4H0DT4L3DT4L2DT4L1DT4L0
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сброса00000000
  • DT4H3:0 (биты 7:4) — Мёртвое время таймера 4, старшие 4 бита.
  • DT4L3:0 (биты 3:0) — Мёртвое время таймера 4, младшие 4 бита.

Частые вопросы

Какими командами ассемблера обращаться к регистрам TC4 ATmega32U4?

Командами IN и OUT доступны TIFR4 (0x19); из них TIFR4 — ещё и командами SBI, CBI, SBIS и SBIC для отдельных битов. TIMSK4, TCNT4, TC4H, TCCR4A, TCCR4B, TCCR4C, TCCR4D, TCCR4E, OCR4A, OCR4B, OCR4C, OCR4D и DT4 лежат за пределами области ввода-вывода, их читают и пишут командами LDS и STS (или LD и ST) по адресу в пространстве данных. В программе на C разницы нет: компилятор сам выбирает команду по адресу из avr/io.h.

Какие значения у регистров TC4 после сброса?

Все регистры блока, для которых даташит 7766J приводит значение после сброса (TIFR4, TIMSK4, TCNT4, TC4H, TCCR4A, TCCR4B, TCCR4C, TCCR4D, TCCR4E, OCR4A, OCR4B, OCR4D и DT4), после сброса равны нулю.

Как установить биты TCCR4C на C?

Имена регистров и битов определены в avr/io.h, бит задаётся сдвигом единицы на его номер: TCCR4C = (1 << COM4A1S) | (1 << COM4A0S); записывает новое значение целиком, а TCCR4C |= (1 << COM4A1S); меняет только этот бит. Готовую строку для любого набора битов даёт конструктор на этой странице.

Источники

  1. Microchip. Atmel. ATmega16U4/32U4 datasheet (7766J) — сводка регистров, диаграммы битов и значения после сброса
  2. Microchip ATmega_DFP 3.6.299, описание ATmega32U4 (ATDF) — регистры, битовые поля и их значения, лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры ATmega32U4

Калькуляторы и статьи