ÊÒÖ-ÌÊ
CK |
TCK0 |
10-разрядный предварительный делитель |
||
|
|
|||
TCK1 |
|
TCK0/8 |
TCK0/32 TCK0/64 TCK0/128 |
TCK0/256 TCK0/1024 |
AS0 |
|
|||
|
|
|
|
|
CS00
CS01
CS02
Тактовый сигнал таймера/счетчика 0
Рис. 31 Предварительный делитель таймера/счетчика0
Тактовый сигнал таймера/счетчика0 обозначен TCK0. Этот такто вый сигнал по умолчанию подключен к основному тактовому сигналу систе мы CK. При установке бита AS0 в регистре ASSR таймер/счетчик0 будет асинхронно такти роваться сигналом с вывода TOSC1, что позволяет использовать таймер/счетчик0 в ка честве часов реального времени (RTC). Генератор оптимизирован под использование кв арцевого кристалла с частотой 32768 кГц, подсоединяемого между выводами TOSC1 и TOSC2.
8-разрядные таймеры/счетчики T/C0 и T/C2
8-разрядный таймер/счетчик0 получает тактовый сигнал или н епосредственно от TCK0 или после прохождения его через предварительный дели тель.
8-разрядный таймер/счетчик2 получает тактовый сигнал непо средственно от CK, после прохождения его через предварительный делитель и ли от внешнего вывода. Оба таймера/счетчика могут быть остановлены, как это пока зано в описании регистров управления таймерами/счетчиками TCCR0 и TCCR2.
В регистре флагов прерывания таймеров/счетчиков TIFR хранят ся различные флаги состояния регистров (переполнения, совпадения при сравнении и захвата события). Установки управляющих сигналов хранятся в регистрах упр авления таймерами/ счетчиками TCCR0 и TCCR2. Установка разрешения/запрещения прерыв аний производится в регистре масок прерываний таймеров/счетч иков TIMSK.
При тактировании таймера/счетчика2 внешним тактовым сигн алом этот сигнал синхронизируется с тактовой частотой CPU. Для обеспечения п равильной синхронизации внешнего сигнала необходимо, чтобы минимальное время меж ду двумя входящими тактовыми циклами было не менее одного цикла внутреннего тактового сигнала CPU. Внешний тактовый сигнал синхронизируется нарастающим ф ронтом внутреннего тактового сигнала CPU.
Точность и разрешение 8-разрядных таймеров/счетчиков раст ет с уменьшением коэффициента предварительного деления. Аналогичным обр азом высокий коэффициент предварительного деления удобно использовать при реали зации функций с низким быстродействием или точной синхронизации редко происхо дящих действий.
8 9
ATMEL |
|
|
|
|
|
ÊÒÖ-ÌÊ |
Оба таймера/счетчика поддерживают две функции сравнения выхода, используя регистры |
||||||
сравнения выхода OCR0 и OCR2 как источники данных, сравниваемых с содержимым |
||||||
таймеров/счетчиков. В функции сравнения выхода входит и о пция очистки счетчика |
||||||
при совпадении и формирование, при совпадении, сигнала на выводах сравнения выхода |
||||||
- PB4(OC0/PWM0) è PB7(OC2/PWM2). |
|
|
|
|
||
Таймеры/счетчики 0 и 2 можно использовать как 8-разрядные ши ротно- |
||||||
импульсные модуляторы (PWM). В этом режиме таймер/счетчик, со вместно с регистром |
||||||
совпадения выхода работают как автономный ШИМ с центрированными импульсами |
||||||
и без ложных выбросов. Подробнее эта функция описана в раз делеТаймеры/счетчики |
||||||
0 и 2 в ШИМ режиме. |
|
|
|
|
|
|
|
Прерывание по |
Прерывание по |
|
|
||
переполнению T/C0 |
совпадению T/C0 |
|
|
|||
8-разрядная шина данных |
|
|
|
|
|
|
8-разрядная асинхронная шина данных |
|
|
|
таймера/счетчика 0 |
|
|
OCIE2 TOIE2 TICIE1 OCIE1B OCIE1A TOIE1 OCIE0 TOIE0 |
|
|
OCF0 |
TOV0 |
|
|
Регистр масок прерываний |
Регистр флагов |
|
Регистр управления |
|||
ïî T/C0 (TIMSK) |
прерываний по T/C0 (TIFR) |
T/C0 (TÑCR0) |
|
|||
|
OCF2 |
TOV2 ICF1 OCF2B |
OCF2A TOV1 OCF0 |
TOV0 |
PWM0 COM01 COM00 CTC0 CS02 CS01 |
CS00 |
7 |
0 |
Очистка T/C |
|
|
|
|
|
|
|
|
|
||
Таймер/счетчик0 (TCNT0) |
|
Тактовый сигнал T/C |
ЛОГИКА УПРАВЛЕНИЯ |
TCK0 |
||
|
Направл. счета (Up/Down) |
|||||
|
|
|
||||
7 |
0 |
|
|
|
|
|
8-разрядный компаратор |
|
|
|
|
|
|
7 |
0 |
|
|
|
|
|
Регистр сравнения |
|
|
|
|
Регистр асинхронного |
|
выхода (OCR0) |
|
|
|
|
состояния (ASSR) |
|
CK |
Блок синхронизации |
AS0 TC0UB OCR0UB |
ICR0UB |
|||
|
|
|||||
TCK0 |
|
|
||||
|
|
|
|
|
||
Рис. 32 Блок-схема таймера/счетчика0 |
|
|
|
|||
9 0 |
|
|
|
|
|
|
ÊÒÖ-ÌÊ |
|
|
|
|
|
|
|
|
|
|
|
Прерывание по |
Прерывание по |
|
|
||||
|
переполнению T/C2 |
совпадению T/C2 |
|
|
|||||
данных |
OCIE2 TOIE2 TICIE1 OCIE1B OCIE1A TOIE1 OCIE0 TOIE0 |
OCF2 |
TOV2 |
|
|
|
Регистр управления |
||
-разрядная шина |
Регистр масок прерываний |
Регистр флагов |
|
||||||
ïî T/C0 (TIMSK) |
прерываний по T/C0 (TIFR) |
|
T/C2 (TOCR2) |
|
|||||
|
|
TOV2 ICF1 |
OCF2B |
OCF2A TOV1 OCF0 |
|
PWM2 |
COM21 COM20 CTC2 CS22 CS21 |
CS20 |
|
7 |
0 |
Очистка T/C |
|
||||||
|
OCF2 |
TOV0 |
|||||||
8 |
Таймер/счетчик2 (TCNT2) |
|
Тактовый сигнал T/C |
|
ЛОГИКА УПРАВЛЕНИЯ |
|
|||
|
|
|
CK |
||||||
|
|
Направл. счета (Up/Down) |
|
||||||
|
7 |
0 |
|
|
|
|
|
|
|
|
8-разрядный компаратор |
|
|
|
|
|
|
|
|
|
7 |
0 |
|
|
|
|
|
|
|
|
Регистр сравнения |
|
|
|
|
|
|
|
|
|
выхода (OCR2) |
|
|
|
|
|
|
|
|
|
Рис. 33 Блок-схема таймера/счетчика2 |
|
|
|
|
||||
|
РЕГИСТР УПРАВЛЕНИЯ ТАЙМЕРОМ/СЧЕТЧИКОМ0 - |
|
|
||||||
|
TCCR0 - (The Timer/Counter0 Control Register) |
|
|
|
|||||
Áèòû |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
$33 ($53) |
- |
PWM0 |
COM01 |
COM00 |
CTC0 |
CS02 |
CS01 |
|
CS00 |
TCCR0 |
|
Чтение/Запись |
R |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|
R/W |
|
|
Начальное состояние |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
РЕГИСТР УПРАВЛЕНИЯ ТАЙМЕРОМ/СЧЕТЧИКОМ2 - |
|
|
|
|
|
||||||
TCCR2 - (The Timer/Counter2 Control Register) |
|
|
|
|
|
|
|||||
Áèòû |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
$25 ($45) |
- |
PWM2 |
COM21 |
COM20 |
CTC2 |
CS22 |
CS21 |
|
CS20 |
|
TCCR2 |
Чтение/Запись |
R |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|
R/W |
|
|
Начальное состояние |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
9 1
ATMEL ÊÒÖ-ÌÊ
• Bit 7 - Res: Reserved Bit - Зарезервированный бит
Данный бит в микроконтроллерах ATmega603/103 зарезервирован и при считывании всегда покажет состояние 0.
•Bit 6 - PWM0 / PWM2: Pulse Width Modulator Enable - Разрешение широтно-
импульсного модулятора
Установленный в состояние 1 бит разрешает режим ШИМ для та ймеров/счетчиков 0 или 2. Режим подробно описан в разделе Таймеры/счетчики 0 и 2 в ШИМ режиме.
•Bits 5,4 - COM01, COM00 / COM21, COM20: Compare Output Mode, bits 1 and 0 -
Режим сравнения выхода, биты 1 и 0
Управляющие биты COMn1 и COMn0 устанавливают состояние выходных выводов PB4(OC0/PWM0) или PB7(OC2/PWM2). после совпадения в таймере/счетчике 2. Поскольку это альтернативная функция выводов порта I/O, то с оответствующий бит направления вывода должен быть установлен в состояние 1. У правляющая конфигурация показана в таблице 10.
Таблица 10. Выбор режима сравнения
COMn1 |
COMn0 |
Описание |
0 |
0 |
Таймер/счетчикn отсоединен от выходного вывода OCn/PWMn |
0 |
1 |
Переключение выходной линии OCn/PWMn. |
1 |
0 |
Очистка выходной линии OCn/PWMn (установка в состояние 0). |
1 |
1 |
Установка выходной линии OCn/PWMn (установка в состояние 1). |
Примечания: n = 0 или 2.
В ШИМ режиме функции этих битов отличаются. Подробное опи сание приведено в таблице 13. При изменении битов COMn1/COMn0 прерывание по сравнени ю выхода должно быть запрещено очисткой его бита разрешени я прерывания в регистре TIMSK. В противном случае при изменении состояния бита может п роизойти прерывание.
•Bit 3 - CTC0 / CTC2: Clear Timer/Counter on Compare match - Очистить таймер/ счетчик при совпадении
При установленном в состояние 1 бите CTC0 или CTC2 таймер/счетчик сбрасывается в состояние $00 в течение одного тактового цикла CPU после наст упления совпадения. Если бит управления сброшен, то таймер продолжает считать и не используется в процедуре сравнения. Поскольку факт совпадение детектир уется в тактовом цикле CPU следующем за совпадением, то эта функция будет вести себ я несколько по другому, если коэффициент предварительного деления будет больше 1. Если используется коэффициент предварительного деления равный 1 и в регистр сравнения A установлено содержимое C, то таймер будет продолжать счет так как это де лается при установленном CTC0/2.
... | 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 | 1, 1, 1,
...
В ШИМ режиме состояние этого бита значения не имеет.
•Bits 2,1,0 - CS02, CS01, CS00 / CS22, CS21, CS20: Clock Select bits 2,1 and 0 - Áèòû
выбора тактовой частоты
Биты 2,1 и 0 выбора тактовой частоты таймера/счетчика2 подклю чают выход определенной ступени предварительного делителя.
9 2
ÊÒÖ-ÌÊ
Таблица 11. Выбор коэффициента деления предварительного делителя таймера/счетчика0
CS02 |
CS01 |
CS00 |
Описание |
0 |
0 |
0 |
Таймер/счетчик0 остановлен. |
0 |
0 |
1 |
TCK0 |
0 |
1 |
0 |
TCK0 / 8 |
|
|
|
|
0 |
1 |
1 |
TCK0 / 32 |
1 |
0 |
0 |
TCK0 / 64 |
1 |
0 |
1 |
TCK0 / 128 |
1 |
1 |
0 |
TCK0 / 256 |
1 |
1 |
1 |
TCK0 / 1024 |
Таблица 12. Выбор коэффициента деления предварительного делителя таймера/счетчика2
CS22 |
CS21 |
CS20 |
Описание |
|
|
|
|
0 |
0 |
0 |
Таймер/счетчик0 остановлен. |
|
|
|
|
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 |
Внешний вывод PD7(T2), падающий фронт |
1 |
1 |
1 |
Внешний вывод PD7(T2), нарастающий фронт |
|
|
|
|
Условие Stop обеспечивает реализацию функции разрешения/за прещения таймера.
Режим деления CK реализуется непосредственным делением та ктовой частоты CK. Если для тактирования таймера/счетчика 2 используется вн ешний источник, то переключения на выводе PD7/(T2) будут воздействовать на счетч ик, даже если этот вывод сконфигурирован как выход.
ТАЙМЕР/СЧЕТЧИК0 - TCNT0 - (Timer/Counter0)
Áèòû |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
||||
$32 ($42) |
MSB |
|
|
|
|
|
|
|
|
|
|
LSB |
TCNT0 |
Чтение/Запись |
R/W |
|
R/W |
R/W |
R/W |
|
R/W |
|
R/W |
|
R/W |
R/W |
|
Начальное состояние |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
||||
ТАЙМЕР/СЧЕТЧИК2 - TCNT2 - (Timer/Counter2) |
|
|
|
|
|
|
|||||||
Áèòû |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
||||
$24 ($44) |
MSB |
|
|
|
|
|
|
|
|
|
|
LSB |
TCNT2 |
Чтение/Запись |
R/W |
|
R/W |
R/W |
R/W |
|
R/W |
|
R/W |
|
R/W |
R/W |
|
Начальное состояние |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
||||
Содержимое этих 8-разрядных регистров является состояние м таймеров/ счетчиков. Оба таймера/счетчика реализованы как счетчики по нарастанию или реверсивные (в ШИМ режиме) счетчики с возможностью чтения /записи. Если в таймер/ счетчик записано некоторое значение и выбран источник та ктового сигнала, то он продолжит счет с записанного значения с тактовой частото й счетчика.
9 3