[pascal] Delay

0

Witam. Wiem do czego służy ta funkcja, ale mam problem - w kursach <ort>pisze </ort>że "delay(1000);" spowoduje zatrzymanie się programu na sekunde. W rzeczywistości (przynajmniej na moim kompie) trwa to dłużej niż sekunde. Jak ustalić, żeby trwało to idealnie sekunde? Probowałem z mniejszymi wartościami, ale wtedy raz jest szybciej a raz wolniej... Może to zależy od kompa? Jeżeli tak to jak zrobić (obejść to) żeby było to idealna sekunda? Może coś z GetTime i warunkami? Chodzi o to, że mam zrobić odliczanie sekundowe do tyłu;)

0

Tego nie przeskoczysz. Przerwanie zegarowe jest co 1//55 s (chyba, mogę się strzelić o troszkę). Dlatego pomiar czasu zależy od szybkości procka. Za bardzo nie ominiesz tego.

0

Jakim kompilatorem sie posługujesz bo jeśli jest to Turbo Pascal to powinnieneś ściągnąć sobie odpowiednią wersje patcha(to jest poprawki na moduł CRT);

0

czyli jeżeli piszę program dla kogoś to muszę dowiedzieć się o procka i dopiero dopasować tak?
Ja mam procka 1000 ( :/ ) czyli jeżeli ma to trwać około sek to "delay(550)" tak?

Próbowałem z tymi patchami, ale albo nie widać różnicy albo zapi**nicza na maxa;p

0

a dla procka 2000 jakby bylo?

0

windows to nie system czasu rzeczywistego - tego się nie da zrobić bez zewnętrznego zegara

0

Myślę, że wina tego nie stoi po stronie twojego procesora, stoi bardziej po stronie kompilatora itp. W końcu procesor 1 GHz to nie jest aż tak mało. W latach kiedy powstał twój kompilator to było to coś naprawde szybkiego. Ja kiedys na 1.1 GHz grałem w Gothic II i się mało cieło!

0

@Oleksy_Adam:
raczej 65536 razy w ciągu godziny. pomiar czasu owszem, będzie zależeć od szybkości procesora, ale błąd kilku nanosekund przy pomiarze milisekund jest chyba pomijalny?

@Dawid93:
nie jesteś w stanie poprzez delay odmierzyć równo sekundy, zawsze będziesz mieć błąd +- 9,1ms. Jeśli chcesz precyzyjniejszego pomiaru czasu (z dokładnością do ns) zapraszamy pod windows do np. delphi.

0

zastanawiałbym się, czy nie jest to wina ze zapewne nie uruchamiasz programu w trybie rzeczywistym. U mnie wszystkie moje programy na procku 2,6 chodzą strasznie wolno, a jeśli włączę w trybie rzeczywistym to program zasuwa. Nawet na 486 100MHz szybciej mi programy chodzą w trybie rzeczywistym niż w emulacji na XP...

// wciśnij num lock w konsoli i zobacz co się stanie - Ł

0
Autre napisał(a)

W latach kiedy powstał twój kompilator to było to coś naprawde szybkiego.

W latach kiedy powstawał twój kompilator (zakładam, że klasyczny Turbo Pascal), nie istniały jeszcze, taktowane częstotliwością powyżej 233MHz procesory Pentium II.

Wniosek bardzo prosty: zapraszamy do podróży w przyszłość o jakieś ponad 10 lat i używania współczesnych kompilatorów (Free Pascal, Delphi, itp).

1 użytkowników online, w tym zalogowanych: 0, gości: 1