Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Reaktionszeitmesser (https://www.delphipraxis.net/88187-reaktionszeitmesser.html)

Z32 11. Mär 2007 15:47


Reaktionszeitmesser
 
Hallo,

Ich möchte die Reaktionszeit von einem Menschen mit einem kleinen Programm ermitteln. Bin aber gerade ein wenig durcheinender mit dem ganzen Zeiten und Zahlen.

Wenn ich den Timer auf den Interval 1 einstelle, führt der ja den Code im OnTimer jede Millisekunde aus (wenn ich mich nicht irre), aber nach meiner Messung müsste ich dann eine Reaktionszeit von 20 Millisekunden haben, was ja in Sekunden umgerechnet 0.02 Sekunden wären. Das ist aber nicht ganz der Norm entsprechend, die für Menschen bei 0,8 Sekunden liegt.

Wo liegt da mein Denkfehler.... :wall:

Infos zum Projekt:

Meine Messung erfolgt so, dass man einen Button drückt und dann nach einer zufälligen Zeit ein Label umschaltet und der Messungstimer gestartet wird. Der User kann den Timer dann mit einem andren Button stoppen und das Ergebnis wird ausgegeben.

DGL-luke 11. Mär 2007 15:57

Re: Reaktionszeitmesser
 
hallo,

das solltest du so nicht machen.

Hier im Forum suchenGetTickCount und Hier im Forum suchenQueryPerformanceCounter geben dir die aktuelle Systemlaufzeit zurück. Wenn du am Anfang und am Ende aufrufst und die werte voneinander abziehst, hast du die Anzahl der Milli-/Mikrosekunden, die vergangen sind.

Z32 11. Mär 2007 16:08

Re: Reaktionszeitmesser
 
OK von GetTickCount hab ich zwar noch nie was gehört, aber ich bekome diesen Wert ausgelesen. Und der scheint ziemlich genau zu sein :wink:

Mit label1.caption:=intotstr(gettickcount);

Aber wie ist der Wert jetzt ausfgebaut...wo sind denn da die Millisekunden???

Matze 11. Mär 2007 16:10

Re: Reaktionszeitmesser
 
Das sind die Millisekunden seit Systemstart, wenn ich mich recht erinnere. Also einmal vor der Berechnung aufrufen und einmal danach. Die Differenz ist die Reaktionszeit.

Übrigens packt WinNT/2000/XP maximal ein Intervall von 10ms und unter Win9x eines von 50ms. Mit dem Timer wäre es folglich viel zu ungenau.

Z32 11. Mär 2007 16:14

Re: Reaktionszeitmesser
 
aso, sowas in der art hatte ich mir auch schon gedacht. Wusste nur nicht wie ich es anders Lösen könnte.

Werde jetzt es jetzt mal mit GetTickCount machen...

Danke für den Tipp... :-D

Z32 11. Mär 2007 16:47

Re: Reaktionszeitmesser
 
So hab das jetzt mal mit GetTickCount gemacht und die Werte stimmen schon besser überein.

Aber eine Frage habe ich noch:

Ich muss doch den ersten Messwert vom Zweiten abziehen, oder? Denn ich bekomme dann immer Minus Werte raus...

BSP:
1. Wert = 13913109
2. Wert = 13913562

Ist das Normal ???

Matze 11. Mär 2007 16:53

Re: Reaktionszeitmesser
 
Du musst den ersten vom 2. abziehen und dann ist das auch positiv:

Zitat:

1. Wert = 13913109
2. Wert = 13913562
13913562 - 13913109 = positiv

Z32 11. Mär 2007 16:59

Re: Reaktionszeitmesser
 
Zitat:

Zitat von Matze
Das sind die Millisekunden seit Systemstart, wenn ich mich recht erinnere...

Aso, dann bekommt das ganze jetzt auch einen Sinn...

Ok, verstanden :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz