Регистр захвата входа таймера/счетчика1 - ICR1H и ICR1L - (Timer/Counter1 Input Capture Register)

Биты
               
$27 ($47) $26 ($46)
MSB              
              LCB
ICR1H ICR1L
 
               
 
Чтение/Запись
R R R R R R R R
R R R R R R R R
 
Начальное состояние
               
               
 

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

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

Поскольку регистр захвата входа является 16-разрядным, то для обеспечения одновременного чтения старшего и младшего байтов данных регистра ICR1 используется регистр временного хранения TEMP. При считывании CPU данных младшего байта содержимое ICR1L пересылается в CPU, а содержимое старшего байта ICR1H размещается в регистре TEMP, чтение старшего байта заключается в переносе в CPU содержимого регистра временного хранения TEMP. Следовательно, при чтении всего 16-разрядного регистра операцию чтения необходимо начинать с младшего байта ICR1L. Регистр TEMP используется также при обращении к TCNT1, OCR1A и OCR1B. Если основная программа и подпрограммы обработки прерываний, используют обращение к регистрам посредством TEMP, то прерывания должны быть запрещены на время обращения из основной программы.

Таймер/счетчик1 в ШИМ режиме

При установленном ШИМ режиме таймер/счетчик1 и регистры сравнения выхода A и B (OCR1A и OCR1B), образуют сдвоенный 8, 9 или 10-разрядный автономный генератор ШИМ с правильным чередованием фаз, отсутствием ложных выбросов и выходами на выводы PD5(OC1A) и OC1B. Таймер/счетчик1 работает как реверсивный счетчик, считающий от $0000 до TOP (см. таблицу 18), при котором направление счета меняется и отсчет ведется до нуля, после чего цикл повторяется. Когда состояние счетчика совпадет с содержимым 10 младших битов OCR1A или OCR1B, выводы PD5(OC1A)/OC1B устанавливаются или очищаются, в соответствии с установками битов COM1A1/ COM1A0 или COM1B1/COM1B0 в регистре управления таймером/счетчиком1 TCCR1A. Подробности см. в таблице 19.

Таблица 18. TOP значения таймера и частота ШИМ

Разрешение ШИМ TOP значения таймера Частота ШИМ
8-разрядное $00FF (255) f TC1 /510
9-разрядное $01FF (511) f TC1 /1022
10-разрядное $03FF (1023) f TC1 /2046

Таблица 19. Выбор режима сравнения1 в ШИМ режиме

COM1X1 COM1X0 Выходной сигнал на OCX1
    Не подключен
    Не подключен
    Очищается по совпадению при счете вверх. Устанавливается по совпадению при счете вниз (не инвертированный ШИМ)
    Очищается по совпадению при счете вниз. Устанавливается по совпадению при счете вверх (инвертированный ШИМ)

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

Отметим, что в ШИМ режиме младшие 10 разрядов OCR1A/OCR1B, при записи, пересылаются в ячейки временного хранения. Они фиксируются по достижении таймером/счетчиком1 значения TOP. Таким способом обеспечивается защита от появления уширенных ШИМ импульсов (ложных выбросов - glitches) при несинхронной записи OCR1A/OCR1B. См. пример на рис. 36.

Рис. 36. Эффект несинхронной фиксации OCR1

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

Когда OCR1 содержит $0000 или TOP, вывод OC1A/OC1B остается на низком уровне, соответственно установкам COM1A1/COM1A0 или COM1B1/COM1B0. Это отображено в таблице 20.

Таблица 20. Состояния выходов в ШИМ режиме при OCR1X = $0000 или TOP

COM1X1 COM1X0 OCR1X Состояние выводов OC1X
    $0000 L
    TOP H
    $0000 H
    TOP L

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

В ШИМ режиме флаг переполнения таймера1 (TOV1) устанавливается при смене направления счета по достижении значения $0000. Прерывание по переполнению таймера1 работает так же как и в обычном режиме таймера/счетчика, т.е. оно выполняется когда TOV1 установлен и разрешены прерывания по переполнению таймера1 и глобальные прерывания. Это относится и к флагам сравнения выхода таймера1 и прерываниям.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: