Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
SamyDeluxe
Anmeldungsdatum: 03.04.2007 Beiträge: 2 Wohnort: Künzing
|
Verfasst am: 03.04.2007, 21:42 Titel: Wie mache ich einen hochauflösenden Timer oder Delay? |
|
|
hi,
kann mir jemand ein Beispiel für ein hochauflösenden Timer oder Delay zeigen? Wäre sehr hilfreich, denn mit sleep komme ich nicht weit^^. Der Timer sollte mindestens ein Intervall von 1 Millisekunde haben. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 03.04.2007, 21:55 Titel: |
|
|
leider sind die timer in qbasic sehr grob, da kommt man auch mit TIMER nur auf ein paar zehntelsekunden. verwende doch freebasic, da funktioniert der sleep-befehl auf millisekunden-basis. mehr infos zu freebasic findest du hier überall im forum... im "allgemeine fragen zu freebasic"-unterforum gibt's auch ganz oben einen thread "woher bekomme ich die aktuellste fb-version?"  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
SamyDeluxe
Anmeldungsdatum: 03.04.2007 Beiträge: 2 Wohnort: Künzing
|
Verfasst am: 03.04.2007, 22:01 Titel: |
|
|
OK... Dann probiers ich mal mit FB. |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 03.04.2007, 22:06 Titel: |
|
|
Code: |
' Diese Routine wartet 1/70 Sekunde, hängt aber von der Frequenz des Monitors ab.
SUB Warten (Sekunden!)
FOR a = 0 TO 70 * Sekunden!
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
NEXT a
END SUB
' Diese Routine wartet 1/19 Sekunde auf allen Computern.
SUB DELAY (Sekunden%)
Sekunden% = Sekunden% * 19
DEF SEG = 0
POKE (1132), 0
IF PEEK(1132) < Sekunden% THEN GOTO CountDown
DEF SEG
END SUB
' Mit dieser Timer-Schleife kann man minimal 0,002 Sekunden warten.
Zeit = 0.5 'wartet eine halbe Sekunde
t = TIMER
DO WHILE NOT t + Zeit <= TIMER: LOOP
|
_________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 03.04.2007, 22:12 Titel: |
|
|
WAIT &H3DA sollte man nicht ohne weiteres verwenden. im vollbild mag das gehn, aber nicht im teilfenster. und naja, 1/70 sekunde is ja net so berauschend. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
|
Nach oben |
|
 |
Triton

Anmeldungsdatum: 10.09.2004 Beiträge: 155 Wohnort: Berlin
|
Verfasst am: 04.04.2007, 17:16 Titel: |
|
|
Naja, ich habs in QB immer so gemacht:
- eine Schleife durchlaufen lassen, für sagen wir 5 sek.
- Schleifendurchläufe zählen (z.B 10000000)
- dann für kleinere Wartezeiten Bruchteile dieser 10000000 Durchläufe laufen lassen
also z.B für 1/10 sek. 200000 Durchläufe etc. _________________ Coding: silizium-net.de | Portfolio: Triton.ch.vu |
|
Nach oben |
|
 |
raph ael
Anmeldungsdatum: 12.04.2006 Beiträge: 472
|
Verfasst am: 04.04.2007, 20:02 Titel: |
|
|
Diese Methode hängt allerdings von der Prozessorleistung ab, oder?
Das Programm wurde mit einem Uralt-Prozessor justiert und läuft unter einem AMD Athlon...  _________________
Zitat: | 1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein. |
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.04.2007, 22:01 Titel: |
|
|
nein, er überprüft ja vor dem SPIELSTART. ist ne recht gute idee, aber wird instabil, sobald auch das system instabil läuft (z.B. durch hintergrundprogramme wie messenger, browser, filesharing) _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|