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:

Nur eine kleine "Zeit"-Frage

 
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
Markus



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 08.04.2005, 09:32    Titel: Nur eine kleine "Zeit"-Frage Antworten mit Zitat

Wenn ich euch mal kurz belästigen darf:

ta = TIMER
DO: LOOP UNTIL INKEY$ = CHR$(27)
PRINT using "###.## Sekunden";TIMER-ta

Stimmt bei dieser Ausgabe die KOMMA-Angabe bei den Sekunden? Wenigstens auf Zehntel? Oder muß ich da irgendetwas mit 55 ms-Ticks herumrechnen?

Gruß
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Skilltronic



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

BeitragVerfasst am: 08.04.2005, 10:04    Titel: Antworten mit Zitat

Hallo

Ja, das stimmt. Die Ausgabe erfolgt direkt in Sekunden. Eine Zehntel ist aber bei diesem Verfahren das äusserste an Genauigkeit. Darum reicht auch eine Nachkommastelle. Wenn du mehrere Timerschritte hintereinander anzeigen lässt, kannst du sehen wie sie immer um ca. 0,055 grösser werden.

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



Anmeldungsdatum: 16.09.2004
Beiträge: 104
Wohnort: Wien

BeitragVerfasst am: 08.04.2005, 10:19    Titel: Antworten mit Zitat

Aha. Danke vielmals!

Beste Grüße
Markus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.04.2005, 12:58    Titel: Antworten mit Zitat

Vielleicht ist an dieser Stelle der Abschnitt "Das 55 ms-Taktproblem des PC-Uhrenbausteins" aus meinem Artikel

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/ButterweicheAnimationen.html

von Interesse. Andere Forenteilnehmer können bestimmt noch weitere Hinweise dazugeben.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



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

BeitragVerfasst am: 10.04.2005, 14:19    Titel: Antworten mit Zitat

Hallo

@dreael:

In dem von dir oben angegebenen Artikel geht es um ja darum, dass eine Messung der Differenzen zwischen aufeinanderfolgender TIMER-Werten schwankende Ergebnisse bringt. Das beruht soweit ich das verstanden habe, ja nur auf Rundungsfehlern bei der Umrechnung des 16-Bit-Binärwertes in eine dezimale Gleitkommazahl. Dein Beispiel dazu sieht so aus:

Code:
t! = TIMER
WHILE INKEY$ = ""
t2! = TIMER
IF t2! <> t! THEN
PRINT t2! - t!
t! = TIMER
END IF
WEND


Zur Lösung schlägst du dann einen digitalen Tiefpassfilter vor.

Nun könnte man doch auch entweder die Dezimalzahl in eine binäre zurückverwandeln, das letzte Digit runden und damit den Fehler wieder herausrechenen. Oder - da man ja die Taktrate kennt - noch einfacher die Differenz zwischen zwei Schritten einfach in "Normschritte" mit einer Dauer von 0,0549254 Sekunden umwandeln. Ich stelle mir das so vor:

Code:
s! = .0549254
t! = TIMER
WHILE INKEY$ = ""
t2! = TIMER
d! = t2! - t!
IF d! > 0 THEN
d! = CINT(d! / s!) * s!
PRINT d!
t! = t2!
END IF
WEND


Wenn man das noch mit dem verbindet, was ich hier:

http://forum.qbasic.at/viewtopic.php?t=834

geschrieben habe, könnte man die Genauigkeit sogar noch steigern, indem man entweder das Highbyte des PIT mit auswertet, und/oder den TIMER schneller laufen lässt, z.B. wie dort ebenfalls beschrieben mit 1kHz statt der standardmässigen 18,2Hz. Was hälst du davon?

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
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: 10.04.2005, 17:25    Titel: Antworten mit Zitat

Kleiner Nachtrag. Ich habe mir mal erlaubt, dreaels Beispielprogramm animdemo.bas in meinem Sinne etwas umzuschreiben. Ich finde, es läuft auch ohne Dämpfung mindestens genauso "butterweich".

http://www.skilltronics.de/runterlader/ANIMDEM2.BAS

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
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