Регистры сравнения B выхода таймера/счетчика1 – OCR1BH и OCR1BL - (Timer/Counter1 Output Compare Register)

Бит                  
$29 ($49) MSB               OCR1BH
$28 ($48)               LSB OCR1BL
                   
Чтение/Запись 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  
Исходное значение                  
                   

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

Совпадение при сравнении устанавливает флаг прерывания по совпадению в тактовом цикле CPU, следующем за самим совпадением. Запись в PORTD5 и PORTD4 устанавливает значения OC1A и OC1B соответственно.

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

Кроме того, регистр TEMP используется при обращении к TCNT1 и ICR1. Если основная программа и подпрограммы обработки прерываний, используют обращение к регистрам посредством TEMP, то прерывания должны быть запрещены на время обращения из основной программы.


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



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