Консультация № 16250
25.01.2005, 19:16
0.00 руб.
0 4 4
Здравствуйте! Подскажите, пожалуйста, через какую функцию можно получить время ? Просто мне необходимо производить определённые действия через промежуток времени (1\3 секунды), и единственное, что пришло мне в голову, вызывать прерываение 1Ch и сверять пройденное время... Может быть, существуют другие способы это сделать ?

Обсуждение

давно
Советник
419
1011
25.01.2005, 20:17
общий
это ответ
Здравствуйте, ant!
Запрограммируй таймер на своё время.
Но там максимум 18.2 герц.
А время считывай с помощью 1Ah прерывания.
Если же тебе нужно сделать задержку, то используй 15h прерывание,функции 83h и 86h.
Удачи!
Неизвестный
25.01.2005, 21:34
общий
это ответ
Здравствуйте, ant!
У вас в вопросе кое-что не ясно чем вам не нравиться ваше прерывание 1Ch !
И вообще про ДОС это или нет ?
Неизвестный
26.01.2005, 14:42
общий
это ответ
Здравствуйте, ant!
1/3 сек = 6*(1/18) сек = 6 тиков
Ты можешь либо проверять значение счетчика таймера по адресу 0040:006c (4 байта). Значение счетчика изменяется каждые 1/18 с. Отсчитываешь 6 тиков - и вперед.
Еще один способ - через прерывание таймера. Можешь использовать либо Int 8 (IRQ 0), либо Int 1c. Они также генерируются каждые 1/18 с.
Неизвестный
27.01.2005, 16:08
общий
это ответ
Здравствуйте, ant!
Читайте RusFAQ.ru FAQ:
http://kalaidjian.pochtamt.ru/rusfaq.htm
Там подробно разбирается вопрос о временных задержках.
Форма ответа