Навіщо нам потрібен прескалер?

Попередній дескалер ділить тактові сигнали, що використовуються для таймера, забезпечуючи меншу швидкість переповнення. Швидкість може бути встановлена ​​на кілька можливих значень. Точні значення залежать від мікросхеми; наприклад, для області значень PIC16F877A доступна низка значень у діапазоні від 1:1 до 1:256.

Попередній делитель можна розглядати як дільник годинника. Як правило, він реалізований як лічильник з кількома вихідними сигналами на різних етапах підрахунку. У випадку ATmega328PB 10-бітний лічильник використовується для поділу вхідного тактового сигналу на чотири (шість у випадку Timer2) різних попередньо масштабованих тактових сигналів.

Якщо коротко: Попередній делитель уповільнює швидкість підрахунку лічильника. Постскалер не сповільнює лічильник, а лише те, як часто він генерує переривання. Це чітко показано на блок-схемі таймера.

Призначення прескалера таке щоб дозволити таймеру працювати з частотою, яку бажає користувач. Для коротших (8 і 16-бітних) таймерів часто буде компроміс між роздільною здатністю (висока роздільна здатність вимагає високої тактової частоти) і діапазоном (високі тактові частоти призводять до швидшого переповнення таймера).

Завжди вибирайте найменший попередній дільник, максимальний період якого більше або дорівнює необхідній тривалості. У разі затримки 100 мс нам потрібен попередній делитель 1:32.

Попередній дескалер ділить тактові сигнали, що використовуються для таймера, забезпечуючи меншу швидкість переповнення. Швидкість може бути встановлена ​​на кілька можливих значень. Точні значення залежать від мікросхеми; наприклад, для області значень PIC16F877A доступна низка значень у діапазоні від 1:1 до 1:256.