Основні особливості архітектури мікроконтролерів PlCmicro. Організація пам'яті програм. Непряма адресація, регістри INDF й FSR, страница 19

Робота TM1 від зовнішнього джерела тактового сигналу вибирається установкою біта TMR1CS в '1'. В атом режимі збільшення таймера відбувається по кожному передньому франті сигналу на виводі T1OSI (якщо T1OSCEN=1) або T1OSO/T1CKI (якщо T1OSCEN=0)

Якщо -T1SYNC=0, то активний фронт зовнішнього тактового сигналу синхронізується із внутрішнім таловым сигналом на виході асинхронного предделителя.

В SLEEP режимі  мікроконтролера лічильник не буде инкрементироваться (при наявність тактового сигналу), т до синхронізатор виключений (предделитель продовжує рахунок тактових імпульсів).

Синхронізація зовнішнього тактового сигналу

  Коли використовується синхронізація зовнішнього тактового сигналу, необхідно враховувати рад вимог. Фаза зовнішнього сигналу синхронізується із внутрішнім тактовим сигналом мікроконтролера (період ТOSC), через що виникає затримка від одержання активного фронту сигналу до збільшення TMR1.

Якщо коефіцієнт предделителя 1:1, то зовнішній тактовий сигнал надходить безпосередньо на вхід синхронізатора. Синхронізація T1CKI з таким сигналом мікроконтролера ускладнюється через опитування виходу синхронізатора в машинні цикли Q2 й Q4, тому тривалість високого або низького логічного рівня зовнішнього сигналу повинна бути не менше 2Tosc (плюс невелика затримка внутрішньої RC ланцюга 20нс).

Якщо предделитель має коефіцієнт розподілу відмінний від 1:1, то на вхід синхронізатора надходить сигнал з асинхронного предделителя. Період сигналу T1CKI повинен бути не менш 4Tosc  (плюс невелика затримка внутрішньої RC ланцюга 40нс) ділене на коефіцієнт предделителя. Додаткова вимога високий і низький логічний рівень зовнішнього сигналу повинен бути не менш 10нc.

  Робота TMR1 у режимі асинхронного лічильника

  Якщо біт -T1SYNC (T1CО<2>) установлений в '1', зовнішній тактовий сигнал TMR1 не буде синхронізуватися із внутрішнім тактовим сигналом мікроконтролера, таймер продовжує працювати в SLEEP режимі мікроконтролера. Переповнення таймера викличе "пробудження" мікроконтролера, якщо дозволено переривання від TMR1. Однак потрібна обережність при записі/читанні TMR1. Робота TMR1 в SLEEP режимі мікроконтролера дозволяє реалізувати годинники реального часу.

В асинхронному режимі TMR1 не може використатися для захвата/порівняння даних модуля РСР.

Читання/запис TMR1 в асинхронному режимі

Читання TMR1H або TMR1L, під час рахунку в асинхронному режимі, гарантує одержання поточного значення лічильника (реалізовано апаратно). Однак користувач повинен мати на увазі, що читання 16-розрядного значення виконується по байтно. Це накладає деякі обмеження, т до таймер може переповнитися між читаннями байт.

Запис в TMR1 рекомендується виконувати після зупинки таймера. Запис у регістри TMR1 під час збільшення таймера може привести до непередбаченого значення регістра.

Читання 16 - розрядного значення потрібно деякої обережності, т до потрібно двох циклу читання для одержання всіх 16 розрядів.


TMR2

TMR2 - 8-розрядний таймер із програмувальними предделителями і вихідним дільником, 8-розрядним регістром періоду PR2. При максимальному значенні коефіцієнтів розподілі тактового сигналу TMR2 відповідає 16 - розрядному таймеру.

TMR2 може бути опорним таймером для РСР модуля в ШИМ режимі.

На малюнку 13-1 показана структурна схема TMR2.


Вихідний дільник уважає число раз досягнення TMR2 значення, записаного в регістрі PR2. Це може бути корисно, коли необхідно організувати перехід на сервісну підпрограму через певний проміжок часу.

         Джерело тактового сигналу

TMR2 має одне джерело тактового сигналу FosС/4. Сигнал надходить через предделитель із програмувальним коефіцієнтом розподілу (1:1. 1:4 або 1:16), обумовлений бітами T2CKPS1 :T2CKPS0 (T2CON<1:0>)

 Регістр таймера TMR2 і періоди PR2

Регістр TMR2 доступний для запису/читання й очищається при будь-якому виді скидання. TMR2 уважає, инкрементируя від OOh до значення в регістрі PR2, потім скидається в OOh на наступному машинному циклі. Регістр PR2 доступний для запису й читання.

Регістр TMR2 очищається при скиданні від WDT, POR, -MCLR й BOR.

Після скидання значення регістра PR2 дорівнює FFh.