mpusu_avr_p2
.pdf20.12.2017
|
|
Таймеры/счетчики микроконтроллеров AVR |
||||||
|
|
|
Прерывания от таймера/счетчика TC2 |
|
||||
Регистр флагов прерываний таймеров TIFR |
|
|
|
|
|
|||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
TIFR |
OCF2 |
TOV2 |
ICF1 |
OCF1A |
OCF1B |
TOV1 |
OCF0 |
TOV0 |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
•Бит 7 – OCF02: Флаг совпадения выхода TC2. Бит OCF2 устанавливается при совпадении содержимого счетного регистра TCNT2 и регистра сравнения OCR2. Сбрасывается аппаратно при обработке прерывания. Возможна очистка бита записью во флаг
•Бит 6 – TOV2: Флаг переполнения TC2. Устанавливается при переполнении T2. Сбрасывается аппаратно при обработке прерывания. Возможна очистка бита записью логической 1.
Регистр разрешения прерываний TIMSK
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
TIMSK |
OCIE2 |
TOIE2 |
TICIE1 |
OCIE1A |
OCIE1B |
TOIE1 |
OCIE0 |
TOIE0 |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
•Бит 7 – OCIE2: Разрешение прерывания по совпадению TC2. Разрешает прерывание по совпадению содержимого счетного регистра и регистра сравнения TC2.
•Бит 6 – TOIE2: Разрешение прерывания по переполнению TC2. Разрешается прерывание по переполнению TC2.
61
Голик С.Е.
Таймеры/счетчики микроконтроллеров AVR
Рабочие и управляющие регистры таймера/счетчика TC1
Работа и управление таймером/счетчиком TC1 обеспечивается следующим набором регистров ввода-вывода
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
TCNT1H |
MSB |
|
|
|
|
|
|
|
TCNT1L |
|
|
|
|
|
|
|
LSB |
OCR1AH |
MSB |
|
|
|
|
|
|
|
OCR1AL |
|
|
|
|
|
|
|
LSB |
OCR1BH |
MSB |
|
|
|
|
|
|
|
OCR1BL |
|
|
|
|
|
|
|
LSB |
ICR1H |
MSB |
|
|
|
|
|
|
|
ICR1L |
|
|
|
|
|
|
|
LSB |
TCCR1A |
COM1A1 |
COM1A0 |
COM1B1 |
COM1B0 |
FOC1A |
FOC1B |
WGM11 |
WGM10 |
TCCR1B |
ICNC1 |
ICES1 |
− |
WGM13 |
WGM12 |
CS12 |
CS11 |
CS10 |
TIFR |
OCF2 |
TOV2 |
ICF1 |
OCF1A |
OCF1B |
TOV1 |
OCF0 |
TOV0 |
TIMSK |
OCIE2 |
TOIE2 |
TICIE1 |
OCIE1A |
OCIE1B |
TOIE1 |
OCIE0 |
TOIE0 |
SFIOR |
ADTS2 |
ADTS1 |
ADTS0 |
− |
ASME |
PUD |
PSR2 |
PSR10 |
SREG |
I |
T |
H |
S |
V |
N |
Z |
C |
LSB, MSB − младший и старший значащие биты соответственно
62
Голик С.Е.
31
20.12.2017
Таймеры/счетчики микроконтроллеров AVR
Рабочие и управляющие регистры таймера/счетчика TC1
Работа и управление таймером/счетчиком T1 обеспечивается следующим набором регистров ввода-вывода (продолжение)
•TCNT1H (Timer/Counter1 High) и TCNT1L (Timer/Counter1 Low) − счетный 16-разрядный регистр
•OCR1AH (Timer/Counter1 Output Compare Register A High) и OCR1AL (Timer/Counter1 Output Compare Register A Low) − 16-разрядный регистр канала выходного сравнения A
•OCR1BH (Timer/Counter1 Output Compare Register B High) и OCR1BL (Timer/Counter1 Output Compare Register B Low) − 16-разрядный регистр канала выходного сравнения B
•ICR1H (Timer/Counter1 Input Capture Register High) и ICR1L (Timer/Counter1 Input Capture Register Low) − 16-разрядный регистр канала входного захвата
•TCCR1A (Timer/Counter1 Control Register A) − регистр управления A таймера/счетчика TC1
•TCCR1B (Timer/Counter1 Control Register B) − регистр управления B таймера/счетчика TC1
•TIFR (Timer/Counter Interrupt Flag Register) − регистр флагов прерываний таймеров
•TIMSK (Timer/Counter Interrupt Mask Register) − регистр разрешения прерываний таймеров
•SFIOR (Special Function Input Output Register) − регистр специальных функций ввода-вывода
•SREG (Status register) − регистр состояния
Суффикс L, H − младший и старший байты 16-разрядного регистра
63
Голик С.Е.
Таймеры/счетчики микроконтроллеров AVR
Структура таймера/счетчика TC1
64
Голик С.Е.
32
20.12.2017
Таймеры/счетчики микроконтроллеров AVR
Модуль счетчика таймера/счетчика TC1
TCNT1 – 16-разрядный счетный регистр
Счет – инкремент или декремент TCNT1 Сброс – установка всех бит TCNT1 в 0
Направление – выбор между инкрементом и декрементом BOTTOM – нижний предел счета
TOP – верхний предел счета
65
Голик С.Е.
Таймеры/счетчики микроконтроллеров AVR
Канал захвата таймера/счетчика TC1
66
Голик С.Е.
33
20.12.2017
Таймеры/счетчики микроконтроллеров AVR
Канал сравнения таймера/счетчика TC1
67
Голик С.Е.
|
|
Таймеры/счетчики микроконтроллеров AVR |
|||||||
|
|
|
|
Управление таймером/счетчиком TC1 |
|
||||
Регистр управления TCCR1A |
|
|
|
|
|
|
|||
|
7 |
6 |
|
5 |
4 |
3 |
2 |
1 |
0 |
TCCR1A |
COM1A1 |
COM1A0 |
COM1B1 |
COM1B0 |
FOC1A |
FOC1B |
WGM11 |
WGM10 |
|
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
W |
W |
R/W |
R/W |
|
Нач. значение |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
•Биты 7,6 − COM1A1, COM1A0: Режим работы канала сравнения А. Разряды определяют поведение вывода OC1A при наступлении события «Совпадение TCNT1 и OCR1A» в зависимости от режима работы таймера.
•Биты 5,4 − COM1B1, COM1B0: Режим работы канала сравнения B. Разряды определяют поведение вывода OC1B при наступлении события «Совпадение TCNT1 и OCR1B» в зависимости от режима работы таймера.
•Бит 3 − FOC1A: Принудительное изменение состояния вывода OC1A в режимах Normal и
CTC (зависит от битов COM1An)
•Бит 2 − FOC1B: Принудительное изменение состояния вывода OC1B в режимах Normal и
CTC (зависит от битов COM1Bn)
•Биты 1,0 − WGM1, WGM0: Режим работы таймера/счетчика ТC1. Используются совместно с битами WGM3, WGM2 регистра TCCR1B для задания режима работы.
68
Голик С.Е.
34
20.12.2017
|
|
Таймеры/счетчики микроконтроллеров AVR |
|||||||
|
|
|
|
Управление таймером/счетчиком TC1 |
|
||||
Регистр управления TCCR1B |
|
|
|
|
|
|
|||
|
7 |
6 |
|
5 |
4 |
3 |
2 |
1 |
0 |
TCCR1B |
|
|
|
|
|
|
|
|
|
ICNC1 |
ICES1 |
|
− |
WGM13 |
WGM12 |
CS12 |
CS11 |
CS10 |
|
Чтение/запись |
R/W |
R/W |
R |
R/W |
R/W |
R/W |
R/W |
R/W |
|
Нач. значение |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
•Бит 7 − ICNC1: Управление схемой подавления помех блока захвата. При установке в 1
подключает фильтр шума на входе модуля захвата
•Бит 6 − ICES1: Выбор активного фронта сигнала захвата. Состояние разряда определяет условие срабатывания датчика фронта в модуле захвата. Если бит равен 0, то датчик фронта срабатывает при спадающем срезе импульса на входе, в противном случае − при нарастающем фронте импульса
•Бит 5 − Не используется
•Биты 4,3 − WGM13, WGM12: Режим работы таймера счетчика ТC1. Используются совместно с битами WGM1, WGM0 регистра TCCR1А для задания режима работы таймера/счетчика TC1
69
Голик С.Е.
|
|
Таймеры/счетчики микроконтроллеров AVR |
||||||
|
|
|
Управление таймером/счетчиком TC1 |
|
||||
Регистр управления TCCR1B (продолжение) |
|
|
|
|
||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
TCCR1B |
ICNC1 |
ICES1 |
− |
WGM13 |
WGM12 |
CS12 |
CS11 |
CS10 |
Чтение/запись |
R/W |
R/W |
R |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
• Биты 2…0 − CS12, CS11, CS10: Управление тактовым сигналом. Разряды определяют источник тактового сигнала для таймера ТC1. Задание источника производится аналогично таймеру/счетчику TC0.
CS12 |
CS11 |
CS10 |
Описание |
0 |
0 |
0 |
Таймер/счетчик 1 остановлен |
0 |
0 |
1 |
clkI/O |
0 |
1 |
0 |
clkI/O/8 |
0 |
1 |
1 |
clkI/O/64 |
1 |
0 |
0 |
clkI/O/256 |
1 |
0 |
1 |
clkI/O/1024 |
1 |
1 |
0 |
Внешний контакт T1, инкрементирование TCNT1 по срезу сигнала |
1 |
1 |
1 |
Внешний контакт T1, инкрементирование TCNT1 по фронту сигнала |
70
Голик С.Е.
35
20.12.2017
|
|
|
|
|
Таймеры/счетчики микроконтроллеров AVR |
||||
|
|
|
|
|
Режимы работы таймера/счетчика TC1 |
||||
|
|
|
|
|
|
|
|
|
|
№ |
WGM13 |
WGM12 |
WGM11 |
WGM10 |
Режим |
Модуль счета TOP |
Обновление OCR1X |
Установка Флага TOV1 |
|
|
|
|
|||||||
0 |
0 |
0 |
0 |
0 |
Normal |
0xFFFF |
Немедленно |
MAX |
|
1 |
0 |
0 |
0 |
1 |
Phase correct PWM 8-bit |
0x00FF |
TOP |
BOTTOM |
|
2 |
0 |
0 |
1 |
0 |
Phase correct PWM 9-bit |
0x01FF |
TOP |
BOTTOM |
|
3 |
0 |
0 |
1 |
1 |
Phase correct PWM 10-bit |
0x03FF |
TOP |
BOTTOM |
|
4 |
0 |
1 |
0 |
0 |
CTC |
OCR1A |
Немедленно |
MAX |
|
5 |
0 |
1 |
0 |
1 |
Fast PWM 8-bit |
0x00FF |
BOTTOM |
TOP |
|
6 |
0 |
1 |
1 |
0 |
Fast PWM 9-bit |
0x01FF |
BOTTOM |
TOP |
|
7 |
0 |
1 |
1 |
1 |
Fast PWM 10-bit |
0x03FF |
BOTTOM |
TOP |
|
8 |
1 |
0 |
0 |
0 |
Phase and Frequency correct PWM |
ICR1 |
BOTTOM |
BOTTOM |
|
9 |
1 |
0 |
0 |
1 |
Phase and Frequency correct PWM |
OCR1A |
BOTTOM |
BOTTOM |
|
10 |
1 |
0 |
1 |
0 |
Phase correct PWM |
ICR1 |
TOP |
BOTTOM |
|
11 |
1 |
0 |
1 |
1 |
Phase correct PWM |
OCR1A |
TOP |
BOTTOM |
|
12 |
1 |
1 |
0 |
0 |
CTC |
ICR1 |
Немедленно |
MAX |
|
13 |
1 |
1 |
0 |
1 |
Зарезервировано |
|
|
|
|
14 |
1 |
1 |
1 |
0 |
Fast PWM |
ICR1 |
BOTTOM |
TOP |
|
15 |
1 |
1 |
1 |
1 |
Fast PWM |
OCR1A |
BOTTOM |
TOP |
|
71
Голик С.Е.
Таймеры/счетчики микроконтроллеров AVR
Режимы работы таймера/счетчика TC1
Режим Normal
COM1A1 |
COM1A0 |
Формирование сигнала на выводе OC1X |
|
COM1B1 |
COM1B0 |
||
|
|||
0 |
0 |
Таймер/счетчик ТC1 отключен от выводов OC1A и OC1B |
|
0 |
1 |
Переключение OC1A /OC1B при совпадении |
|
1 |
0 |
OC1A /OC1B сбрасываются в 0 при совпадении |
|
1 |
1 |
OC1A /OC1B устанавливаются в 1 при совпадении |
72
Голик С.Е.
36
20.12.2017
Таймеры/счетчики микроконтроллеров AVR
Режимы работы таймера/счетчика TC1
Режим CTC (сброс при совпадении)
COM1A1 |
COM1A0 |
Формирование сигнала на выводе OC1A |
0 |
0 |
Таймер/счетчик отключен от вывода OC1A |
0 |
1 |
Инверсия вывода OC1A при совпадении TCNT1 и OCR1A (ICR1) |
1 |
0 |
Вывод сбрасывается в 0 при совпадении TCNT1 и OCR1A (ICR1) |
1 |
1 |
Вывод устанавливается в 1 при совпадении TCNT1 и OCR1A (ICR1) |
73
Голик С.Е.
Таймеры/счетчики микроконтроллеров AVR
Режимы работы таймера/счетчика TС1
Режим Fast PWM (Быстрый ШИМ)
COM1X1 |
COM1X0 |
Формирование сигнала на выводе OC1X |
|
0 |
0 |
Таймер/счетчик ТС1 отключен от выводов OC1X |
|
0 |
1 |
Выводы OC1X отключены |
|
1 |
0 |
Выводы OC1X сбрасываются в 0 при равенстве счетного регистра и |
|
регистра сравнения. Устанавливаются в 1 при TCNT1 = BOTTOM |
|||
|
|
||
1 |
1 |
Выводы OC1X устанавливаются в 1 при равенстве счетного регистра и |
|
регистра сравнения. Сбрасываются в 0 при TCNT1 = BOTTOM |
|||
|
|
74
Голик С.Е.
37
20.12.2017
Таймеры/счетчики микроконтроллеров AVR
Режимы работы таймера/счетчика TС1
Режим Fast PWM (Быстрый ШИМ)
COM1A1 |
COM1A0 |
Формирование сигнала на выводе OC1A |
|
0 |
0 |
Таймер/счетчик ТС1 отключен от вывода OC1A |
|
0 |
1 |
В режиме 15 − переключение OC1A при совпадении, в 14 - отключен |
|
1 |
0 |
Вывод OC1A сбрасывается в 0 при равенстве счетного регистра и |
|
регистра сравнения. Устанавливается в 1 при TCNT1 = BOTTOM |
|||
|
|
||
1 |
1 |
Вывод OC1A устанавливается в 1 при равенстве счетного регистра и |
|
регистра сравнения. Сбрасывается в 0 при TCNT1 = BOTTOM |
|||
|
|
75
Голик С.Е.
Таймеры/счетчики микроконтроллеров AVR
Режимы работы таймера/счетчика TС1
Режим Phase Correct PWM (ШИМ с точной фазой)
COM1X1 |
COM1X0 |
Формирование сигнала на выводе OC1X |
|
0 |
0 |
Таймер/счетчик ТС1 отключен от выводов OC1X |
|
0 |
1 |
Выводы OC1X отключены |
|
1 |
0 |
Выводы OC1X→1 при равенстве TCNT1 и регистра сравнения при |
|
прямом ходе и OC1X→0 при их равенстве во время обратного хода |
|||
|
|
||
1 |
1 |
Выводы OC1X→1 при равенстве TCNT1 и регистра сравнения при |
|
прямом ходе и OC1X→0 при их равенстве во время обратного хода |
|||
|
|
76
Голик С.Е.
38
20.12.2017
Таймеры/счетчики микроконтроллеров AVR
Режимы работы таймера/счетчика TС1
Режим Phase Correct PWM (ШИМ с точной фазой)
COM1A1 |
COM1A0 |
Формирование сигнала на выводе OC1A |
|
0 |
0 |
Таймер/счетчик ТС1 отключен от выводов OC1A и OC1B |
|
0 |
1 |
В режиме 11 − переключение состояния вывода OC1A, 10 – отключен |
|
1 |
0 |
Вывод OC1A→0 при равенстве TCNT1 и регистра сравнения при |
|
прямом ходе и OC1A→0 при их равенстве во время обратного хода |
|
||
|
|
|
|
1 |
1 |
Вывод OC1A→1 при равенстве TCNT1 и регистра сравнения при |
|
прямом ходе и OC1A→0 при их равенстве во время обратного хода |
|
||
|
|
|
|
|
|
77 |
|
|
|
Голик С.Е. |
Таймеры/счетчики микроконтроллеров AVR
Режимы работы таймера/счетчика TС1
Режим Phase and Frequency Correct PWM (ШИМ с точной частотой и фазой)
COM1A1 |
COM1A0 |
Формирование сигнала на выводе OC1A |
|
0 |
0 |
Таймер/счетчик ТС1 отключен от выводов OC1A и OC1B |
|
0 |
1 |
В режиме 9 − переключение состояния вывода OC1A, 8 – отключен |
|
1 |
0 |
Вывод OC1A→0 при равенстве TCNT1 и регистра сравнения при |
|
прямом ходе и OC1A→1 при их равенстве во время обратного хода |
|
||
|
|
|
|
1 |
1 |
Вывод OC1A→1 при равенстве TCNT1 и регистра сравнения при |
|
прямом ходе и OC1A→0 при их равенстве во время обратного хода |
|
||
|
|
|
|
|
|
78 |
|
|
|
Голик С.Е. |
39
20.12.2017
|
|
Таймеры/счетчики микроконтроллеров AVR |
|||||||
|
|
|
Прерывания от таймера/счетчика TС1: флаги |
|
|||||
Регистр флагов прерываний таймеров TIFR |
|
|
|
|
|
|
|||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
TIFR |
OCF2 |
TOV2 |
ICF1 |
OCF1A |
OCF1B |
TOV1 |
OCF0 |
|
TOV0 |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
•Бит 5 – ICF1: Флаг захвата входа TС1. Устанавливается при захвате в регистр захвата ICR1 состояния таймера по сигналу на входе. Сбрасывается аппаратно при обработке прерывания. Возможна очистка бита записью во флаг логической 1
•Бит 4 – OCF1A: Флаг 1A совпадения выхода TС1. Устанавливается при совпадении состояния T1 и содержимого регистра OCR1A. Сбрасывается аппаратно при обработке прерывания. Возможна очистка бита записью логической 1
•Бит 3 – OCF1B: Флаг 1B совпадения выхода TС1. Устанавливается при совпадении состояния ЕС1 и содержимого регистра OCR1B. Сбрасывается аппаратно при обработке прерывания. Возможна очистка бита записью логической 1
•Бит 2 – TOV1: Флаг переполнения TС1. Устанавливается при переполнении T1. Сбрасывается аппаратно при обработке прерывания. Возможна очистка бита записью во флаг логической 1
79
Голик С.Е.
|
|
Таймеры/счетчики микроконтроллеров AVR |
||||||
|
|
Прерывания от таймера/счетчика TС1: разрешения |
||||||
Регистр разрешения прерываний таймеров TIMSK |
|
|
|
|
||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
TIMSK |
OCIE2 |
TOIE2 |
TICIE1 |
OCIE1A |
OCIE1B |
TOIE1 |
OCIE0 |
TOIE0 |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
•Бит 5 – TICIE1: Разрешение прерывания по захвату TС1. Разрешает прерывание по захвату таймера/счетчика TС1
•Бит 4 – OCE1A: Разрешение прерывания по совпадению регистра A с TС1. Разрешает прерывание по совпадению регистра сравнения A с состоянием таймера/счетчика TС1
•Бит 3 – OCIE1B: Разрешение прерывания по совпадению регистра B с TС1. Разрешает прерывание по совпадению регистра сравнения B с состоянием таймера/счетчика TС1
•Бит 2 – TOIE1: Разрешение прерывания по переполнению TС1. Разрешает прерывание по переполнению таймера/счетчика TС1
80
Голик С.Е.
40