Задержка на Pascal
Кстате насчёт delay я слышал что задершка зависит от процессора, точнее от чистоты его работы !!!
Vovchik, не от того как чИсто, а от того как чАсто и от модуля предварительной выборки и от архитектуры - короче от проца. Про реализацию Delay читаем здесь
It's a long way to the top if you wanna rock'n'roll
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
Хыиуду,
HundSecond:=round(HundSecond * 0.185) +Ticks; - получить новое время = заданное время + текущее
repeat until (Ticks>HundSecond) - крутим цикл, ждём пока текущее время не превысит сохраненное плюс время задержки...
погодите... а разве в моём коде не написано в точности то, о чём вы сказали!!" писал(а):А не проще получить текущее время, сохранить его и потом ничего не делать, пока текущее время не превысит сохраненное плюс время задержки?
HundSecond:=round(HundSecond * 0.185) +Ticks; - получить новое время = заданное время + текущее
repeat until (Ticks>HundSecond) - крутим цикл, ждём пока текущее время не превысит сохраненное плюс время задержки...
спасибо за помощь, сделал свой вариант:
1000 - 1 секунда
1000 - 1 секунда
Код: Выделить всё
var
systemtimer:longint absolute $0040:$006C;
procedure delau(t:longint);
var
n,t:longint;
begin
x:=0;
n:=systemtimer;
while ((t-n)/18.2)*1000<t do
t:=systemtimer;
end;