Assembler для начинающих


         

Время суток - часть 9


    микросекунд. Если вы хотите измерять события более длительные, то
    вам придется воспользоваться другим способом измерения времени.
 
      Другой режим таймера, который используется в IBM PC - это режим
    0. Этот режим называют прерыванием по завершению счета. В этом
    режиме таймер не работает непрерывно. После его установки таймер до
    тех пор не начинает считать (единицами), пока в него полностью не
    будет загружено число. Затем счетчик считает в сторону уменьшения с
    частотой синхроимпульсов, пока не достигнет нуля. В этот момент его
    выход становится высоким. Поскольку выход канала 0 таймера
    подключен к прерыванию 0 контроллера 8259, в системе возникает
    прерывание.
 
      Режим прерывания по завершению счета полезен, если вы хотите в
    определенный момент подать программе сигнал с помощью прерывания.
    Так как счетчик ограничен шестнадцатью битами, максимальный
    отсчитываемый интервал времени составляет 55 миллисекунд. Если этот
    интервал слишком мал, нужен другой метод измерения времени.
 
      Если вы хотите измерять интервал времени в секундах, нужно
    оставить таймер в его обычном режиме работы. Система BIOS позволяет
    захватывать управление системой каждые 55 миллисекунд, и в каждый
    такой момент вы можете решить, не исчерпался ли нужный промежуток
    времени.
      Если время нужной вам задержки находится между 55
    миллисекундами и 5 секундами, можно использовать метод без
    использования программ BIOS. Например, вам хочется сделать задержку
    на 150 миллисекунд. Используя режим прерывания по завершению счета,
    вы настраиваете таймер на прерывание через 50 миллисекунд (этому
    соответствует значенние счетчика около 59500). Обработчик
    прерывания программируется так, чтобы, получая управление первые
    два раза, он заново устанавливал таймер на 50 миллисекунд. По
    третьему прерыванию от таймера, когда 150 миллисекунд исчерпаны,
    можно предпринять нужные действия.
 



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