Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

mpusu_avr_p2

.pdf
Скачиваний:
86
Добавлен:
23.01.2018
Размер:
6.46 Mб
Скачать

20.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

Выводы OC1X1 при равенстве TCNT1 и регистра сравнения при

прямом ходе и OC1X0 при их равенстве во время обратного хода

 

 

1

1

Выводы OC1X1 при равенстве TCNT1 и регистра сравнения при

прямом ходе и OC1X0 при их равенстве во время обратного хода

 

 

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

Вывод OC1A0 при равенстве TCNT1 и регистра сравнения при

 

прямом ходе и OC1A0 при их равенстве во время обратного хода

 

 

 

 

1

1

Вывод OC1A1 при равенстве TCNT1 и регистра сравнения при

 

прямом ходе и OC1A0 при их равенстве во время обратного хода

 

 

 

 

 

 

77

 

 

Голик С.Е.

Таймеры/счетчики микроконтроллеров AVR

Режимы работы таймера/счетчика TС1

Режим Phase and Frequency Correct PWM (ШИМ с точной частотой и фазой)

COM1A1

COM1A0

Формирование сигнала на выводе OC1A

 

0

0

Таймер/счетчик ТС1 отключен от выводов OC1A и OC1B

 

0

1

В режиме 9 − переключение состояния вывода OC1A, 8 – отключен

 

1

0

Вывод OC1A0 при равенстве TCNT1 и регистра сравнения при

 

прямом ходе и OC1A1 при их равенстве во время обратного хода

 

 

 

 

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

Соседние файлы в предмете Микропроцессоры и микроконтроллеры