24h(44h)
7
6
5
4
3
2
1
0
LSB
R\W
R\W
R\W
R\W
R\W
R\W
R\W
R\W
Начальное значение
0
0
0
0
0
0
0
0
Регистр захвата 16-разрядный регистр доступный только для чтения. По нарастающему или спадающему фронту (в соответствии с выбором фронта импульса захвата ICES1) сигнала на выводе ICP текущее значение таймера/счетчика 1 переписывается в регистр захвата ICR1. В это же время устанавливается флаг захвата ICF1. Поскольку регистр захвата является 16-разрядным, для чтения его значения, чтобы оба байта прочитались одновременно, используется временный регистр. При чтении младшего байта ICR1L, он посылается в ЦПУ, а старший байт регистра ICR1H переписывается во временный регистр (TEMP). При чтении старшего байта, он принимается из временного регистра. Таким образом для чтения 16-разрядного регистра первым должен читаться младший байт. Регистр TEMP используется при доступе к TCNT1 и OCR1, поэтому если временный регистр используется в основной программе и в прерываниях, при доступе к TEMP из основной программы прерывания должны запрещаться.
ТАЙМЕР/СЧЕТЧИК 1 В РЕЖИМЕ ШИМ
При выборе режима широтно-импульсной модуляции (ШИМ), таймер/счетчик 1 и регистр совпадения OCR1A формируют 8, 9 или 10-разрядный непрерывный свободный от "дрожания" и правильный по фазе сигнал, выводимый на ножку PB3(OC1). Таймер/счетчик 1 работает как реверсивный счетчик считающий от 0 до конечного значения (см. табл.10). При достижении конечного значения счетчик начинает считать в обратную сторону до нуля, после чего рабочий цикл повторяется. Когда значение счетчика совпадает с 8, 9 или 10-ю младшими битами регистра OCR1A, вывод PD1(OC1) устанавливается или сбрасывается в соответствии с установками бит COM1A1 и COM1A0 в регистре TCCR1 (см. табл.11).
Таблица 12. Конечное значение таймера и частота ШИМ.
Разрешение ШИМ
Конечное значение таймера
Частота ШИМ
8 бит
00FFh (255)
Ftc1/510
9 бит
01FFh (511)
Ftc1/1022
10 бит
03FFh (1023)
Ftc1/2046
Таблица 13. Установка режима совпадения при работе ШИМ
COM1A1
COM1A0
Влияние на вывод OC1
0
0
не подключен
0
1
не подключен
1
0
очищается при совпадении, для возрастания счетчика и сбрасывается для уменьшения (неинвертирующий ШИМ)
1
1
очищается при совпадении, для уменьшения счетчика и сбрасывается для возрастания (инвертирующий ШИМ)
В режиме ШИМ, при записи в регистр OCR1A, 10 младших бит передаются во временный регистр и переписываются только при достижении таймером/счетчиком конечного значения. При этом устраняется появление несимметричных импульсов (дрожания), которые неизбежны при асинхронной записи OCR1A. Во промежуток времени между записью во временный регистр и переписыванием его в OCR1, при обращении к OCR1 читается содержимое временного регистра. Если OCR1A содержит значение 0000h или конечное значение (TOP), вывод OC1 остается в том состоянии, которое определяется установками COM1A1 и COM1A0. Это показано в табл. 14.
Таблица 14. Выход ШИМ для OCR=0000h или TOP
COM1A1
COM1A0
OCR1A
вывод OC1
1
1
0
0
0000h
TOP
низкий
высокий
1
1
1
1
0000h
TOP
высокий
низкий
В режиме ШИМ флаг переполнения таймера 1 (TOV1) устанавливается когда счетчик изменяет направление счета в точке 0000h. Прерывание по переполнению таймера 1 работает как при нормальном режиме работы таймера/счетчика, т.е. оно выполняется, если установлен флаг TOV1 и разрешены соответствующие прерывания. То же самое касается флага совпадения и прерывания по совпадению.
СТОРОЖЕВОЙ ТАЙМЕР
Сторожевой таймер работает от отдельного встроенного генератора работающего на частоте 1 MHz (это типовое значение частоты для питания 5В). Управляя предварительным делителем сторожевого таймера можно задавать интервал сброса таймера от 16 до 2048 mS. Команда WDR сбрасывает сторожевой таймер. Для работы сторожевого таймера можно выбрать одно из 8-ми значений частоты, что позволяет в широких пределах изменять время между исполнением команды WDR и сбросом процессора. При отработке периода работы сторожевого таймера, если не поступила команда WDR, AT90S2313 сбрасывается, выполнение программы продолжается с вектора сброса.
Для предотвращения нежелательного отключения сторожевого таймера, для его запрещения должна выполняться определенная последовательность, которая описана при рассмотрении регистра WDTCR.
РЕГИСТР УПРАВЛЕНИЯ СТОРОЖЕВЫМ ТАЙМЕРОМ – WDTCR
WDTCR
21h(41h)
7
6
5
4
3
2
1
0
WDTOE
WDE
WDP2
WDP1
WDP0
R
R
R
R
R\W
R\W
R\W
R\W
Начальное значение
0
0
0
0
0
0
0
0
Биты 7..5 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.
Бит 4 - WDTOE - разрешение выключения сторожевого таймера. При очистке бита WDE этот бит должен быть установлен (1). Иначе, работа сторожевого таймера не прекращается. Через четыре такта после установки этого бита, он аппаратно сбрасывается.
Бит 3 - WDE- разрешение сторожевого таймера. Если бит установлен (1), работа сторожевого таймера разрешена, если бит сброшен - запрещена. Сброс бита производится только в том случае, если бит WDTOE установлен в 1. Для запрещения включенного сторожевого таймера должна исполняться следующая процедура:
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34