РП
МИКРОКОНТРОЛЛЕРЫ
Регистр захвата входа таймера/счетчикаї - ICR1H и ICR1L -
(Timer/Counter! Input Capture Register)
Б иты
15
14
13
12
11
10
9
8
$27 ($47)
MSB
ICR1H
$26 ($46)
LCB
ICR1L
7
6
5
4
3
2
1
0
Ч т е н и е /
З а п и с ь
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
Н а ч а л ь н о е
с о с т о я н и е
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Когда OCR1 содержит $0000 или ТОР, вывод ОС1А/ОС1В остает-
ся на низком уровне, соответственно установкам СОМ1А1/СОМ1АО
или СОМ1В1/СОМ1ВО. Эго отображено втабл. 21.
Табл. 21
С О М 1 Х 1
С О М 1X 0
O C R IX
С о с т о я н и е в ы в о д о в О С 1Х
1
0
$0000
L
1
0
ТОР
Н
1
1
$0000
н
1
1
ТОР
L
Примечание к табл. 21:
X = А или В.
16-разрядный регистр захвата входа обеспечивает толь-
ко чтение содержимого.
При обнаружении на выводе захвата входа PD4(IC1)
нарастающего или падающего фронта сигнала (опреде-
ляемого установкой ICES1) текущее состояние таймера/
счетчика1 пересылается в регистр захвата входа ICR1. Од-
новременно устанавливается в состояние 1 флаг захвата
входа ICF1.
Поскольку регистр захвата входа является 16-разряд-
ным, то для обеспечения одновременного чтения старше-
го и младшего байтов данных регистра ICR1 используется
регистр временного хранения TEMP При считывании CPU
данных младшего байта содержимое ICR1L пересылает-
ся в CPU, а содержимое старшего байта ICR1Н размеща-
ется в регистре TEMP, чтение старшего байта заключает-
ся в переносе в CPU содержимого регистра временного
хранения TEMP.
Следовательно, при чтении всего 16-разрядного регис-
тра операцию чтения необходимо начинать с младшего
байта ICR1L. Регистр TEMP используется также при обращении к
TCNT1, OCRIAh OCR1B. Если основная программа и подпрограммы
обработки прерываний используют обращение к регистрам посред-
ством TEMP, то прерывания должны быть запрещены на время обра-
щения из основной программы.
Таймер/счетчик1 в ШИМ режиме
При установленном ШИМ режиме таймер/счетчик1 и регистры
сравнения выходаАи В (OCRIAn OCR1B) образуют сдвоенный 8-, 9-
или 10-разрядный автономный генератор ШИМ с правильным чере-
дованием фаз, отсутствием ложных выбросов и выходами на выводы
PD5(OC1 А) и ОС1 В. Таймер/счетчик1 работает как реверсивный счет-
чик, считающий от $0000 до ТОР (табл. 19), при котором направление
Табл. 19
Р а зр е ш е н и е Ш И М
Т О Р зн а ч е н и я т а й м е р а
Ч а ст о т а Ш И М
8-разрядное
S00FF (255)
fT C t /510
9-разрядное
$01FF (511)
fT C t /1022
10-разрядное
$03 FF (1023)
fT C l /2046
счета меняется и отсчет ведется до нуля, после чего цикл повторяет-
ся. Когда состояние счетчика совпадет с содержимым 10 младших
битов ОСИ1Аили ОСИ1В, выводы РОб(ОС1А)/ОС1 В устанавливают-
ся или очищаются в соответствии с установками битов СОМ1А1/
СОМ1 АО или СОМ1В1/СОМ1 ВО в регистре управления таймером/счет-
чиком1 ТССР1А. Подробности приведены втабл. 20.
Табл. 20
C O M 1X1
C O M 1X O
В ы х о д н о й си г н а л н а О С Х 1
0
0
Не подключен
0
1
Не подключен
1
0
Очищается по совпадению при счете вверх.
Устанавливается по совпадению при счете вниз
(не инвертированный Ш ИМ)
I
1
Очищается по совпадению при счете вниз.
Устанавливается по совпадению при счете вверх
(инвертированный Ш ИМ )
Примечание к табл. 20:
X = А или В.
Отметим, что в ШИМ режиме младшие 10 разрядов OCR1A/OCR1В
при записи пересылаются в ячейки временного хранения. Они фикси-
руются по достижении таймером/счетчиком1 значения ТОР. Таким спо-
собом обеспечивается защита от появления уширенных ШИМ импуль-
сов (ложных выбросов - glitches) при несинхронной записи OCR1A/
OCR1B. Пример приведен на рис. 24.
При чтении OCRIAnnn OCR1B, в промежутке времени между за-
писью и фиксацией, будет считано содержимое ячейки временного
хранения. Это означает, что более раннее записанное значение все-
гда будет считываться из OCR1A/B.
В ШИМ режиме флаг переполнения таймера1 (TOV1) устанавли-
вается при смене направления счета по достижении значения $0000.
Прерывание по переполнению таймера 1 работает так же, как и в обыч-
ном режиметаймера/счетчика, т.е. оно выполняется, когда TOV1 уста-
новлен и разрешены прерывания по переполнению таймера1 и гло-
бальные прерывания. Это относится и к флагам сравнения выхода
таймера1 и прерываниям.
Сторожевой таймер (Watchdog Timer)
На рис. 25 приведена схема сторожевого таймера.
Сторожевой тай-
мер тактируется от-
дельным встроенным
генератором, работаю-
щим с частотой 1 МГц
при типовом напряже-
нии питания Vcc = 5 В
(см. типовые значения
при других значениях
Vcc). Установкой коэф-
фициента предвари-
тельного деления мож-
но изменять длитель-
ность интервала до
сброса по сторожевому
таймеру от 16 тыс. до
2048 тыс. циклов (от 16 до 2048 мс). Команда WDR (Watchdog Reset)
сбрасывает сторожевой таймер.
С момента сброса сторожевого таймера можно установить восемь
периодов длительности тактового сигнала, устанавливая, таким обра-
зом, длительность периода сброса. Если период сброса завершается
(в течение этого периода не поступил сигнал сброса сторожевого тай-
мера), то микроконтроллер АТтеда603/103 сбрасывается, и его рабо-
та продолжается по вектору сброса. Подробности тактирования сбро-
са по сторожевому таймеру см. в разделе Сброс по сторожевому
таймеру.
При разрешении сторожевого таймера его состояние неизвестно
и прежде, чем разрешать сторожевой таймер, необходимо выполнить
команду WDR. В ином случае прибор может быть сброшен прежде,
чем будет выполнена команда WDR, прописанная после разреше-
ния. Для предотвращения случайного запрета запрет сторожевого
таймера должен сопровождаться специальной процедурой выклю-
чения. Подробности в
описании регистра управления сторожевым
таймером.
(Продолжение следует)
8/2003
предыдущая страница 47 Радиолюбитель 2003-08 читать онлайн следующая страница 49 Радиолюбитель 2003-08 читать онлайн Домой Выключить/включить текст