Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[58]

Выбор источника тактирования и делитель

Тактирование таймера TACLK может производиться от ACLK, SMCLK или от внешнего источника через TACLK или INCLK. Источник тактовых импульсов выбирается с помощью битов TASSELx. Выбранный источник тактирования может быть подключен к таймеру напрямую или через делитель на 2, 4 или 8 с помощью битов IDx. Делитель TACLK сбрасывается при установке бита TACLR.

1122.Запуск таймера

Таймер может быть запущен или перезапущен следующими способами:

•Таймер считает, когда MCx > 0 и источник тактовых импульсов активен

•Когда таймер в режиме «вверх» или «вверх/вниз», он может быть остановлен путем записи 0 в TACCR0. Затем таймер может быть перезапущен путем записи ненулевого значения в TACCR0. В этом случае таймер начинает инкрементироваться от нуля.

1123.Управление режимом таймера

Таймер имеет четыре режима работы, описанных в таблице 11-1: «стоп», «вверх», «непрерывный» и «вверх/вниз». Режимы работы выбираются с помощью битов MCx.

Таблица 11-1. Режимы таймера.

Описание

Останов таймера

Таймер многократно считает от нуля до значения в TACCR0

Непрерывный

Таймер многократно считает от нуля до значения 0FFFFh

Вверх/вниз

Таймер многократно считает от нуля вверх до значения в TACCR0 и назад до нуля.

Режим «Вверх»

Режим «вверх» используется, если период таймера должен отличаться от количества отсчетов 0FFFFh. Таймер многократно считает вверх до значения, содержащегося в регистре сравнения TACCR0, который задает период, как показано на рис.11-2. Количество отсчетов таймера в периоде равно TACCR0+1. Когда значение таймера становится равно содержимому TACCR0, таймер перезапускается, начиная счет от нуля. Если режим «вверх» выбран, когда значение таймера больше содержимого TACCR0, таймер немедленно перезапускается, начиная считать от нуля.


OFFFFh TACCRO

Рис. 11-2. Режим «Вверх»

Флаг прерывания TACCRO CCIFG устанавливается, когда значение таймера равно содержимому TACCR0. Флаг прерывания TAIFG устанавливается, когда таймер считает от TACCR0 к нулю. На рис. 11-3 показан цикл установки флагов.

Тактирование таймера Таймер

Установка TAIFG

Установка TACCR0 CCIFG

X CCR0-1)

; CCR0 )

I 0h X 1h X™ XCCR0-1)

( CCR0 j

1 „

Рис. 11-3. Установка флагов в режиме «Вверх»

Изменение регистра периода TACCR0

Когда изменяется TACCR0 во время работы таймера, таймер продолжает отсчет вверх до новой границы периода, если новый период больше или равен старому или больше текущего значения счета. Если новый период меньше величины текущего значения счета, таймер обнуляется. Однако до обнуления счетчика может произойти один дополнительный отсчет.

Непрерывный режим

В непрерывном режиме таймер многократно считает вверх до 0FFFFh и перезапускается от нуля, как показано на рис. 11-4. Регистр захвата/сравнения TACCR0 работает подобно другим регистрам захвата/сравнения.

Рис. 11-4. Непрерывный режим


Флаг прерывания TAIFG устанавливается, когда таймер считает от OFFFFh к нулю. На рис. 11-5 показан цикл установки флага.

Тактирование f

таймера

Таймер X FFFEh X FFFFh

Установка TAIFG

Рис. 11-5. Установка флага в непрерывном режиме

Использование непрерывного режима

Непрерывный режим может использоваться для генерации независимых временных интервалов и выходных частот. Каждый раз по завершении интервала генерируется прерывание. Следующий временной интервал добавляется к регистру TACCRx в процедуре обработки прерывания. На рис. 11-6 показаны два раздельных временных интервала tO и t1, добавляемые к регистрам захвата/ сравнения. При таком использовании временные интервалы управляются аппа-ратно, без программного обеспечения, без влияния времени задержки прерывания. При использовании всех трех регистров захвата/сравнения можно сгенерировать до трех независимых временных интервалов или выходных частот.

Временные интервалы можно реализовать также в других режимах, где TACCR0 используется как регистр периода. Их обработка более комплексна, поскольку сумма старого значения TACCRx и нового периода может быть выше

TACCR1b TACCROb

TACCR1c TACCROc

TACCROa

t1 , И j t! Рис. 11-6. Временные интервалы непрерывного режима



[стр.Начало] [стр.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] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120]