Page 37 - 4875
P. 37
1 ввести в порт керуючого регістру (043h ) код CLC для
запам'ятовування вмісту СЕ;
2 занести в порт керуючого регістру (043h ) код команди запиту на
читання/запис в регістри вибраного каналу або каналів (поле RW
повинно бути 11);
3 двома послідовними командами вводу із порта потрібного каналу
(040h, 041h, 042h) ввести молодший і старший байти стану СЕ.
Програмування таймера найчастіше використовується для
підвищення точності вимірювання часу (0-канал таймера) за рахунок
збільшення частоти імпульсів, що проходять цим каналом (стандарт
18,2 Гц). При чому після завершення вимірювання часу необхідно
встановити попередні значення для правильного функціонування
системи. Іншим варіантом є генерація звукових ефектів, а також
створення функцій генерування випадкових чисел.
Засоби BIOS для роботи з таймером
Для роботи з таймером (0-вим каналом) BIOS містить функції
переривання int 1ah, які дозволяють зчитувати та змінювати значення
лічильника таймеру.
1 Зчитування поточного вмісту лічильника таймера
На вході: АН = 00h
На виході: CХ = старший байт
DХ = молодший байт
АL = 0 якщо з моменту перезапису
пройшло 24 год
2 Заміна вмісту лічильника таймера
На вході: АН = 01h
CХ = старший байт
DХ = молодший байт
На виході: Регістр не використовується
Після переривання лічильник працює з новими значеннями.
Найчастіше організація роботи з таймером використовується для
реалізації затримок в роботі програм. Оскільки таймер працює реально
як окремий блок і не залежить від потужності процесора (оскільки
частота поновлення лічильника 18,2 Гц), то може статися так, що цього
36