Материал: 8-разрядные микроконтроллеры Atmel

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ÊÒÖ-ÌÊ

Прерывание по Прерывание по

Прерывание по

совпадению

совпадению

Прерывание по

переполнению T/C1

T/C1 ñ A

T/C1 ñ B

захвату входа T/C1

данных

РегистрOCIE2 TOIE2

масокOCIE1B OCIE1A прерыванийTOIE1 OCIE0 TOIE0

OCF2

РегистрICF1 OCF1B

флаговTOV1

TOV0

Регистр управления

 

 

Регистр управления

 

TICIE1

 

 

TOV2

OCF1A

OCF0

 

 

 

 

 

 

 

 

 

 

разряднаяшина

таймера (TIMSK)

прерываний таймера (TIFR)

A T/C1 (TCCR1A)

 

 

 

B T/C1 (TCCR1B)

 

 

 

ICF1 OCF1B

OCF1A

TOV1

 

COM1A1 COM1A0 COM1B1

COM1B0

PWM11

PWM10

ICNC1

ICES1

CTC1 CS12

CS11

CS10

15

8

7

 

Триггер

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

Регистр захвата входа T/C1 (ICR1)

 

 

ЛОГИКА УПРАВЛЕНИЯ

 

CK

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

захвата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

8

7

 

 

0

 

Очистка T/C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таймер/счетчик1 (TCNT1)

 

 

 

Тактовый сигнал T/C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Направл. счета (Up/Down)

 

 

 

 

 

 

15

8

7

0

15

8

7

0

 

16-разрядный компаратор

 

 

 

16-разрядный компаратор

 

 

 

 

 

 

 

 

 

 

15

8

7

0

15

8

7

0

 

Регистр A сравнения выхода

 

 

 

Регистр B сравнения выхода

 

 

таймера/счетчика1

 

 

 

таймера/счетчика1

 

 

 

 

 

 

 

 

 

 

Рис. 35 Блок-схема таймера/счетчика1

того, для переключения входа захвата может быть использов ан аналоговый компаратор. Подробнее данная функция описана в разделе Аналоговый компаратор.

Если разрешена функция подавления шума, действительные у словия переключения события захвата тестируются четырьмя выборками, прежде ч ем захват будет активирован. Тестирование сигнала на входном выводе производится с ча стотой XTAL.

РЕГИСТР УПРАВЛЕНИЯ A ТАЙМЕРА/СЧЕТЧИКА1 -

TCCR1A - (Timer/Counter1 Control Register A)

Áèòû

7

6

5

4

3

2

1

0

 

$2F ($4F)

 

COM1A1COM1A0COM1B1COM1B0

 

-

-

PWM11

PWM10

TCCR1A

Чтение/Запись

R/W

R/W

R/W

R/W

R

R

R/W

R/W

Начальное состояние

0

0

0

0

0

0

0

0

 

• Bits 7,6 - COM1A1, COM1A0: Compare Output Mode1A, bits 1 and 0 - Режим1A

сравнения выхода, биты 1 и 0

Управляющие биты COM1A1 и COM1A0 определяют характер сигнала выход а, следующего за совпадением при сравнении таймера/счетчика1. Сигнал выхода

9 9

ATMEL

ÊÒÖ-ÌÊ

поступает на вывод OC1A (Output CompareA). Поскольку это альтернативная ф ункция порта I/O, то соответствующий бит управления направлением д олжен быть установлен в 1 (вывод работает на выход). Конфигурирование управления представлено в таблице 15.

Таблица 15. Выбор режима сравнения 1

COM1X1

COM1X0

Описание

0

0

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

0

1

Переключение выходной линии OC1X.

1

0

Очистка выходной линии OC1X (на линии низкий уровень).

1

1

Установка выходной линии OC1X (на линии высокий уровень).

Примечание: X = A или B

•Bits 5,4 - COM1B1, COM1B0: Compare Output Mode1B, bits 1 and 0 - Режим1B

сравнения выхода, биты 1 и 0

Управляющие биты COM1B1 и COM1B0 определяют характер сигнала выход а, следующего за совпадением при сравнении таймера/счетчика1. Сигнал выхода поступает на вывод OC1B (Output CompareB). Поскольку это альтернативная ф ункция порта I/O, то соответствующий бит управления направлением д олжен быть установлен в 1 (вывод работает на выход). Конфигурирование управления представлено в таблице 15.

ÂШИМ режиме функции этих битов отличаются. Подробное опи сание приведено в таблице 19.

При изменении битов COM1X1/COM1X0 прерывания по сравнению выхода1 должны быть запрещены очисткой битов разрешения прерыва ния в регистре TIMSK. В противном случае при изменении битов может произойти пр ерывание

•Bits 3..2 - Res: Reserved bits - Зарезервированные биты

Эти биты в микроконтроллерах ATmega603/103 зарезервированы и при с читывании всегда будут 0.

• Bits 1..0 - PWM11, PWM10: Pulse Width Modulator Select Bits - Биты выбора режима

ØÈÌ

Данные биты определяют установку режима ШИМ, как это пока зано в таблице 16. Подробности см. в разделе Таймер/счетчик1 в ШИМ режиме.

Таблица 16. Выбор ШИМ режима

PWM11

PWM10

Description

0

0

Работа таймера/счетчика1 в ШИМ режиме запрещена

0

1

Работа таймера/счетчика1 в 8-разрядном ШИМ режиме

1

0

Работа таймера/счетчика1 в 9-разрядном ШИМ режиме

1

1

Работа таймера/счетчика1 в 10-разрядном ШИМ режиме

 

 

 

100

ÊÒÖ-ÌÊ

РЕГИСТР УПРАВЛЕНИЯ B ТАЙМЕРА/СЧЕТЧИКА1 -

TCCR1B - (Timer/Counter1 Control Register B)

Áèòû

7

6

5

4

3

2

1

0

 

$2E ($4E)

ICNC1

ICES1

-

-

CTC1

CS12

CS11

CS10

TCCR1B

Чтение/Запись

R/W

R/W

R

R

R/W

R/W

R/W

R/W

Начальное состояние

0

0

0

0

0

0

0

0

 

•Bit 7 - ICNC1: Input Capture1 Noise Canceler (4 CKs) - Установка режима подавления шума на входе захвата 1

При сброшенном в состояние 0 бите ICNC1 функция подавления шум а входного триггера захвата запрещена. Вход захвата переключается по первому нарастающему/ падающему фронту, поступившему на вывод входа захвата PD4(IC1) . При установленном в состояние 1 бите ICNC1 выполняются четыре последовательных опроса состояния вывода PD4(IC1) и все четыре выборки должны иметь одинаковый (в ысокий/низкий), определяемый битом ICES1, уровень. Частота опроса соответств ует частоте XTAL.

•Bit 6 - ICES1: Input Capture1 Edge Select - Выбор фронта срабатывания на входе

захвата 1

При сброшенном в состояние 0 бите ICES1 содержимое таймера/сче тчика1, по падающему фронту на выводе входа захвата PD4( IC1), пересылаетс я в регистр захвата входа ICR1. При установленном в 1 бите ICES1 содержимое таймера/сч етчика1 пересылается в регистр захвата входа ICR1 по нарастающему фр онту на выводе входа захвата PD4( IC1).

•Bits 5, 4 - Res: Reserved bits - Зарезервированные биты

Эти биты в микроконтроллерах ATmega603/103 зарезервированы и при с читывании всегда будут 0.

•Bit 3 - CTC1: Clear Timer/Counter1 on Compare Match - Очистка таймера/счетчика1

по совпадению

При установленном в состояние 1 бите CTC1 таймер/счетчик1 сбра сывается в состояние $0000 в течение тактового цикла, следующего за совпадением пр и сравненииA. Если бит CTC1 очищен, таймер/счетчик1 продолжает отсчет и не реагир ует на совпадение при сравнении. Поскольку совпадение при сравнении детект ируется в течение тактового цикла CPU следующего за совпадением, то поведение функции бу дет отличаться при установке коэффициента предварительного деления таймер а/счетчика1 большем 1. При коэффициенте предварительного деления 1 и установлен ном в регистре сравненияA состоянии C таймер будет считать в соответствии с установ кой CTC1:

... | C-1 | C | C+1 | 0 | 1 | ...

При установленном коэффициенте предварительного делени я 8 таймер будет считать подобно:

... | C-1, C-1, C-1, C-1, C-1, C-1, C-1, C-1 | C, C, C, C, C,C, C, C | C+1, 0, 0, 0, 0, 0, 0, 0, 0 | ...

В ШИМ режиме состояние бита CTC1 значения не имеет.

•Bits 2,1,0 - CS12, CS11, CS10: Clock Select1, bit 2,1 and 0 - Выбор источника тактовой

частоты, биты 2,1 и 0

Установкой состояния данных битов производится выбор ис точника тактового сигнала ( в том числе коэффициента предварительного деления)

Stop условие выполняет функцию разрешения/запрещения тайме ра/счетчика1 В режимах с предварительным делением на соответствующий коэффициент делится частота CK тактового генератора. При использовании внешнего тактирования

101

ATMEL

ÊÒÖ-ÌÊ

необходимо выполнить соответствующие установки в регис тре управления направлением (очистка переводит вывод в режим входа).

Таблица 17. Выбор источника тактового сигнала таймера/счетчика1

CS12

CS11

CS10

Описание

0

0

0

Stop условие - таймер/счетчик1 остановлен.

0

0

1

CK

0

1

0

CK / 8

0

1

1

CK / 6 4

1

0

0

CK / 256

1

0

1

CK / 1024

1

1

0

Внешний тактирующий сигнал на выводе T1, нарастающий фронт

 

 

 

 

1

1

1

Внешний тактирующий сигнал на выводе T1, падающий фронт.

 

 

 

 

ТАЙМЕР/СЧЕТЧИК1 - TCNT1H и TCNT1L

 

 

 

 

 

Áèòû

15

14

13

12

11

10

9

8

 

$2D ($4D)

MSB

 

 

 

 

 

 

 

TCNT1H

$2C ($4C)

 

 

 

 

 

 

 

LCB

TCNT1L

 

7

6

5

4

3

2

1

0

 

Чтение/Запись

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

 

 

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

 

Начальное состояние

0

0

0

0

0

0

0

0

 

 

0

0

0

0

0

0

0

0

 

16-разрядный регистр содержит текущее значение 16-разрядног о таймера/ счетчика1. С тем, чтобы CPU могло считывать/записывать и старш ий и младший байты этого регистра одновременно, обращение реализовано поср едством 8-разрядного регистра временного хранения(TEMP). Этот регистр использует ся также при обращении к OCR1A, OCR1B и ICR1. Если основная программа и подпрограммы обработк и прерываний используют обращение к регистрам посредство м TEMP, то прерывания должны быть запрещены на время обращения из основной прог раммы

• Запись в таймер/счетчик1 - TCNT1

Когда CPU производит запись в старший байт (TCNT1H) записываемые данные размещаются в регистре TEMP. Затем, когда CPU производит запись в младший байт (TCNT1L) данные младшего байта объединяются с байтом данн ых регистра TEMP и все 16 битов одновременно переписываются в регистр тайм ера/счетчика TCNT1. Следовательно, при 16-разрядных операциях обращение к ст аршему байту (TCNT1H) должно выполняться первым. При использовании та ймера/ счетчика1 в качестве 8-разрядного таймера достаточно прои зводить запись только младшего байта.

• Чтение таймера/счетчика1 - TCNT1

Когда CPU считывает младший байт (TCNT1L), то содержимое TCNT1L направ ляются непосредственно в CPU, содержимое старшего байта (TCNT1H) размещ ается в регистре TEMP и при считывании CPU старшего байта (TCNT1H) его содерж имое CPU принимает из регистра TEMP. Следовательно, при 16-разрядных оп ерациях первым должно выполняться обращение к младшему байту (TCNT1L) . При

102

ÊÒÖ-ÌÊ

использовании таймера/счетчика1 в качестве 8-разрядного т аймера достаточно производить запись только младшего байта.

Таймер/счетчик1 выполнен в виде счетчика с нарастанием ил и реверсивного счетчика (в ШИМ режиме) и возможностью чтения/записи. Если в таймер/с четчик1 занесено некоторое значение и выбран источник тактового сигнала, т о таймер/счетчик1 продолжит отсчет через один тактовый цикл после установки в нем зап исанного значения.

РЕГИСТРА СРАВНЕНИЯ A ВЫХОДА ТАЙМЕРА/СЧЕТЧИКА1 - OCR1AH и OCR1AL - (Timer/Counter1 Output Compare Register)

Áèòû

15

14

13

12

11

10

9

8

 

$2B ($4B)

MSB

 

 

 

 

 

 

 

 

OCR1AH

$2A ($4A)

 

 

 

 

 

 

 

 

LSB

OCR1AL

 

7

6

5

4

3

2

1

0

 

Чтение/Запись

R/W

 

R/W

R/W

R/W

R/W

R/W

R/W

R/W

 

 

R/W

 

R/W

R/W

R/W

R/W

R/W

R/W

R/W

 

Начальное состояние

0

0

0

0

0

0

0

0

 

 

0

0

0

0

0

0

0

0

 

РЕГИСТРЫ СРАВНЕНИЯ B ВЫХОДА ТАЙМЕРА/СЧЕТЧИКА1 - OCR1BH и

OCR1BL - (Timer/Counter1 Output Compare Register)

 

 

 

Áèòû

15

14

13

12

11

10

9

8

 

$29 ($49)

MSB

 

 

 

 

 

 

 

 

OCR1BH

$28 ($48)

 

 

 

 

 

 

 

 

LSB

OCR1BL

 

7

6

5

4

3

2

1

0

 

Чтение/Запись

R/W

 

R/W

R/W

R/W

R/W

R/W

R/W

R/W

 

 

R/W

 

R/W

R/W

R/W

R/W

R/W

R/W

R/W

 

Начальное состояние

0

0

0

0

0

0

0

0

 

 

0

0

0

0

0

0

0

0

 

16-разрядные регистры сравнения выхода обеспечивают и чте ние и запись. Регистры сравнения выхода таймера/счетчика1 хранят данны е постоянно

сравниваемые с состоянием таймера/счетчика1. Действие, за пускаемое совпадением при сравнении определяется содержимым регистра управле ния и состояния таймера/ счетчика1. Совпадение при сравнении может произойти тольк о если таймер/счетчик1 досчитает до значения содержимого OCR. Если в TCNT1 и OCR1A или OCR1B программно будут записаны одинаковые значения, то значен ия, то совпадение при сравнении сгенерировано не будет.

Совпадение при сравнении устанавливает флаг прерывания по совпадению в тактовом цикле CPU следующем за самим совпадением.

Поскольку регистры сравнения выхода OCR1A и OCR1B являются 16-разр ядными, то для обеспечения одновременного занесения старшего и м ладшего байтов данных в регистры OCR1A/B используется регистр временного хранения TEMP. К огда CPU записывает старший байт, то данные временно сохраняются в регистре TEMP. Когда же CPU записывает младший байт в OCR1AL или OCR1BL, то одновременно сод ержимое регистра OCR1BH переписывается в OCR1AH или OCR1BH. Следовательно, при 16разрядных операциях старшие байты регистров OCR1A/B должны за писываться первыми.

103

Источник: https://studfile.net/preview/16521258/