Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Spongebob Schwamm
Anmeldungsdatum: 31.10.2004 Beiträge: 40
|
Verfasst am: 06.03.2005, 19:07 Titel: Do-Loop Timer |
|
|
Hi!
Ich möchte während einer Do-Loop Schleife die Zeit zählen (natürlich in Sekunden). Die Do- Loop until Inkey$ = Chr$(27) Schleife ist wie der Code schon sagt, mit Esc zu beenden. Dann soll aber auch das Zeitzählen aufhören und dann soll "geprintet"(geschrieben mit dem Print Befehl) werden, wie lange die Schleife in "Betrieb" war.
mfg
Spongebob Schwamm |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 06.03.2005, 19:16 Titel: |
|
|
Ist sehr einfach:
Code: | ' Einfache Schleifen-Stoppuhr
t1! = TIMER
' hier Deine bisherige Schleife
WHILE INKEY$ = ""
WEND
t2! = TIMER
PRINT "Zeit: "; t2! - t1!; " Sekunden" |
Hinweis: Ist nicht rollover-tauglich über Mitternacht. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 06.03.2005, 19:18 Titel: |
|
|
Hallo
Code: | ta = TIMER
DO: LOOP UNTIL INKEY$ = CHR$(27)
PRINT TIMER-ta; "Sekunden" |
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 06.03.2005, 21:12 Titel: |
|
|
Hallo!
Falls du dies nicht gewusst hast, TIMER liefert die Sekunden nach Mitternacht zurück.
Das Problem ist, dass nach Mitternacht TIMER wieder auf Null gesetzt wird.
Hier eine Variante mit TIME$:
Code: |
Seconds& = 0
CLS
PRINT " Bitte mit Escape beenden!"
DO
WHILE TIME$ = T$: WEND
T$ = TIME$
Seconds& = Seconds& + 1
LOOP UNTIL INKEY$ = CHR$(27)
PRINT "Die Schleife lief "; RTRIM$(LTRIM$(STR$(Sconds&))); " Sekunden."
|
jb |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 06.03.2005, 21:39 Titel: |
|
|
Hallo
Wenn's unbedingt "mitternachtsfest" sein muss dann vielleicht auch so:
Code: | tstart = TIMER
DO: LOOP UNTIL INKEY$ = CHR$(27)
tende = TIMER
zeit = tende - tstart
IF zeit < 0 THEN zeit = zeit + 86400
PRINT zeit; "Sekunden" |
läuft aber maximal 24 Std. lang richtig...
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 06.03.2005, 21:58 Titel: |
|
|
Hehe...
Meine obige Variante war aber auch "mitternachtsfest", und hatte
3-4 Variablen weniger
jb |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 06.03.2005, 22:14 Titel: |
|
|
jb hat Folgendes geschrieben: | Hehe...
Meine obige Variante war aber auch "mitternachtsfest", und hatte
3-4 Variablen weniger
jb |
Na ja - eher zwei. Dafür sind bei deiner Version bis zu 2 Sekunden Fehler möglich...
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 06.03.2005, 22:22 Titel: |
|
|
Jaja, aber was sind schon 10 Sekunden auf 48 Stunden?
Außerden kann man den Programmstart um
Code: |
DO: LOOP UNTIL TIMER = FIX(TIMER)
|
ergänzen. Dann ist der Fehler auch weg...
jb |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 06.03.2005, 22:53 Titel: |
|
|
jb hat Folgendes geschrieben: | Jaja, aber was sind schon 10 Sekunden auf 48 Stunden?
Außerden kann man den Programmstart um
Code: |
DO: LOOP UNTIL TIMER = FIX(TIMER)
|
ergänzen. Dann ist der Fehler auch weg...
jb |
Ja, denn dann geht fast garnichts mehr. Der TIMER hat eine beschränkte Auflösung. Das sein Wert gerade mal eine ganze Zahl ist, kommt nur in unregelmässigen Abständen vor. Dann lieber ein paar Variablen mehr
Wo stand denn in der Frage was von langer Laufzeit? Vielleicht ist ja eher Genauigkeit gefragt z.B. für einen Reaktionszeit-Messer oder so.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 06.03.2005, 23:07 Titel: |
|
|
Skilltronic hat Folgendes geschrieben: |
Wo stand denn in der Frage was von langer Laufzeit?
|
Nicht direkt.
Skilltronic hat Folgendes geschrieben: |
läuft aber maximal 24 Std. lang richtig...
|
Außerdem war von Mitternachtsfestigkeit die Rede.
OK. Für kleinere Intervalle ist wohl deine Variante die bessere.
jb |
|
Nach oben |
|
 |
|