Основы микропроцессорной техники


             

Модуль таймера и регистр таймера


Структура модуля таймера/счетчика TIMER0 и его взаимосвязь с регистрами   TMR0 и OPTION показаны на рис. 5.12. TIMER0 является программируемым модулем и содержит следующие компоненты:

  • 8-разрядный таймер/счетчик TMR0 с возможностью чтения и записи как регистр;
  • 8-разрядный программно управляемый предварительный делитель (предделитель);
  • мультиплексор входного сигнала для выбора внутреннего или внешнего тактового сигнала;
  • схему выбора фронта внешнего тактового сигнала;
  • формирователь запроса прерывания по переполнению регистра   TMR0 с FFh до 00h.

Режим таймера выбирается путем сбрасывания в ноль бита T0CS   регистра   OPTION <5>. В режиме таймера   TMR0 инкрементируется каждый командный цикл (без пределителя). После записи информации в TMR0 инкрементирование его начнется после двух командных циклов. Это происходит со всеми командами, которые производят запись или чтение-модификацию-запись TMR0 (например, MOVF TMR0, CLRF TMR0). Избежать этого можно при помощи записи в TMR0 скорректированного значения. Если TMR0 нужно проверить на равенство нулю без останова счета, следует использовать инструкцию MOVF TMR0,W.

Режим счетчика выбирается путем установки в единицу бита T0CS   регистра   OPTION<5>. В этом режиме регистр   TMR0 будет инкрементироваться либо нарастающим, либо спадающим фронтом на выводе RA4/T0CKI от внешних событий. Направление фронта определяется управляющим битом T0SE в регистре   OPTION<4>. При T0SE = 0 будет выбран нарастающий фронт.

Предделитель может использоваться или совместно с TMR0, или со сторожевым (Watchdog) таймером. Вариант подключения делителя контролируется битом PSA регистра   OPTION<3>. При PSA=0 делитель будет подсоединен к TMR0. Содержимое делителя программе недоступно. Коэффициент деления пределителя программируется битами PS2…PS0   регистра   OPTION<2:0>.


Рис. 5.12.  Структурная схема таймера/счетчика TMR0.

Прерывание по TMR0 вырабатывается тогда, когда происходит переполнение регистра   таймера/счетчика при переходе от FFh к 00h.

Содержание  Назад  Вперед