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
   32   33   34   35   36   37   38   39   40   41   42