Читайте также:
|
|
В этих режимах Т1 работает как реверсивный счетчик. Формирование сигнала ШИМ в режиме 10 происходит следующим образом. С приходом каждого импульса его содержимое увеличивается на 1. Содержимое таймера сравнивается со значением в регистрах OCR1A и ICR1. Когда Т1 = OCR1A на выводе PIND.5 устанавливается единица (формируется фронт импульса для неинвертируемого ШИМ). Таймер продолжает счет далее. При наступлении равенства Т1 = ICR1 таймер переключается в вычитающий режим и далее его содержимое уменьшается на 1 по приходу каждого импульса. Когда снова достигается равенство Т1 = OCR1A на выходе PIND.5 устанавливается уровень нуля (срез импульса). Таймер продолжает счет. При достижении нулевого значения таймер переключается в суммирующий режим и т.д.. Иначе, формирование импульсов ШИМ производится аналогично режиму № 8.
В режимах 1,2,3 максимальное значение таймера Т1 является фиксированным (режим 1 – константа FF, режим 2 – константа 1FF, режим 3 – константа 3FF.
В режиме № 11 работа Т1 аналогична работе в режиме №10, но сравнение значения Т1 производится со значением в регистре OCR1B, модуль счета Т1 определяется регистром OCR1A и импульсы ШИМ формируются на выводе OC1B(PIND.4).
При загрузке регистров сравнения новым значением, оно предварительно помещается в буферный регистр. В режимах 1,2,3,10 и 11 пересылка нового значения из буферного регистра в регистр сравнения производится в момент, когда содержимое таймера/счетчика становится равным максимальному.
Особенности записи в таймер/счетчик Т1, регистр сравнения OCR1 и регистр захвата ICR1. Разрядность каждого из этих регистров равна 16. Физически каждый из них состоит из двух регистров. В адресном пространстве ввода-вывода адресуются 8-битные регистры старших (TCNT1H, OCR1H, ICR1H) и младших (TCNT1L, OCR1L, ICR1L) разрядов. Запись 16-разрядного значения в Т1, OCR1 или ICR1 производится двумя командами, а для того чтобы запись в таймер/счетчик, регистр совпадения и регистр захвата происходила одновременно, используется программно недоступный регистр TEMP. Схема построена так, что при записи младшего байта он загружается непосредственно в регистр младших разрядов (например, в TCNT1L), а в регистр старших разрядов (например, TCNT1H) помещается значение из программно недоступного регистра TEMP. Таким образом, при записи 16-разрядного значения первым должен записываться старший байт в регистр старших разрядов TCCR1H, OCR1H или ICR1H (байт помещается в регистр ТЕМР), а следующей командой записывается младший байт в TCNT1L, OCR1L или ICR1L и одновременно содержимое ТЕМР (старший байт) помещается в соответствующий регистр старших разрядов.
Так как регистр ТЕМР один, то во избежание неправильной записи, перед записью в любой из 16-разрядных регистров должны быть запрещены прерывания, содержащие обращения к этим регистрам.
Особенности чтения таймера/счетчика Т1, регистра сравнения OCR1 и регистра захвата ICR1. При чтении младшего байта из 16-разрядного регистра данные считываются из всего регистра одновременно, однако младший байт помещается в место определенное командой, а старший байт помещается в регистр ТЕМР. Следующей командой чтения из регистра старших разрядов считывается старший байт 16-разрядного регистра из регистра ТЕМР.
Дата добавления: 2015-07-20; просмотров: 79 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Режимы быстрой ШИМ №№5,6,7,14,15. | | | Последовательный периферийный интерфейс - SPI |