Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Wie mache ich einen hochauflösenden Timer oder Delay?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
SamyDeluxe



Anmeldungsdatum: 03.04.2007
Beiträge: 2
Wohnort: Künzing

BeitragVerfasst am: 03.04.2007, 21:42    Titel: Wie mache ich einen hochauflösenden Timer oder Delay? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.04.2007, 21:55    Titel: Antworten mit Zitat

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?" zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
SamyDeluxe



Anmeldungsdatum: 03.04.2007
Beiträge: 2
Wohnort: Künzing

BeitragVerfasst am: 03.04.2007, 22:01    Titel: Antworten mit Zitat

OK... Dann probiers ich mal mit FB.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 03.04.2007, 22:06    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.04.2007, 22:12    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 03.04.2007, 22:32    Titel: Antworten mit Zitat

Hallo

Es muss nicht immer FreeBasic sein. Mit Qb kann man sogar bis zu ca. einer µs, also einer milliionstel Sekunde auflösen. Ich habe dazu schon mal was geschrieben:

http://forum.qbasic.at/viewtopic.php?t=834&start=0&postdays=0&postorder=asc&highlight=timerregister

Der lange Beitrag ganz unten. Vielleicht hilft dir das weiter.

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Triton



Anmeldungsdatum: 10.09.2004
Beiträge: 155
Wohnort: Berlin

BeitragVerfasst am: 04.04.2007, 17:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 04.04.2007, 20:02    Titel: Antworten mit Zitat

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... durchgeknallt
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.04.2007, 22:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz