TTimer zu ungenau - wie funktioniert der EpikTimer?
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
.
Zuletzt geändert von Bora4d am Do 16. Aug 2012, 15:37, insgesamt 1-mal geändert.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Es nützt nichts wenn der User nicht anschmeißt. Das Betriebssystem und seine Hintergrund-Prozesse sind durchaus in der Lage ohne Auftrag irgendwelche internen Vorgänge zu machen ohne dass man ihm das sagt. Schau Dir mal an was alles für Dämonen / Service in Windows und Linux laufen, ohne dass man das jemals in Auftrag gegeben hat.Bora4d hat geschrieben:Der Fragensteller will ja nicht während des Programmlaufs Festplatte defragmentieren, spiele starten oder musik konvertieren?
Wenn die Messung irgendeine Relevanz haben soll (also wenn das kein Spielzeug-Programm ist) Geht sowas in normalem Windows und Linux nicht.
Nochmal sage ich das nicht.
-Michael

Zuletzt geändert von mschnell am Di 7. Aug 2012, 15:02, insgesamt 1-mal geändert.
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
.
Zuletzt geändert von Bora4d am Do 16. Aug 2012, 15:38, insgesamt 1-mal geändert.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Na klar !.... bis auf manchmalBora4d hat geschrieben:es läuft bei mir Wunderbar.

Nur keiner kann vorhersagen wann es völligen Blödsinn misst.
-Michael
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
.
Zuletzt geändert von Bora4d am Do 16. Aug 2012, 15:38, insgesamt 1-mal geändert.
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Also nochmal zum Verständnis: Ich meine das schon ernst, dass ich eine genaue Zeitmessung brauche.
Da, wie gesagt, dies ein kognitionspsychologisches Experiment werden soll und die Effekte sehr klein sein werden, kann ich keine Varianz in den Intervallen und den Zeitmessungen gebrauchen.
Interessant ist, dass dies ja wirklich ein Problem zu sein scheint und dass meine bisher erfolglose Suche nach einer einfachen Lösung nicht nicht nur damit zusammen hängt, dass ich eben Programmieranfängerin bin.
Ich würd mich trotzdem freuen, wenn sich noch jemand meldet, der den EpikTimer kennt ...
Da, wie gesagt, dies ein kognitionspsychologisches Experiment werden soll und die Effekte sehr klein sein werden, kann ich keine Varianz in den Intervallen und den Zeitmessungen gebrauchen.
Interessant ist, dass dies ja wirklich ein Problem zu sein scheint und dass meine bisher erfolglose Suche nach einer einfachen Lösung nicht nicht nur damit zusammen hängt, dass ich eben Programmieranfängerin bin.
Ich würd mich trotzdem freuen, wenn sich noch jemand meldet, der den EpikTimer kennt ...
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Genau ist gar nicht mal das Problem. Das Problem ist zuverlässig.Eva hat geschrieben:, dass ich eine genaue Zeitmessung brauche.
Wenn es Dir egal ist, dass ab und zu mal (manchmal vielleicht dauernd, manchmal sporadisch, und ohne dass man das irgwndwie erkennen könnte) Werte rauskommen, die ein bisschen oder auch beliebig falsch sind, kannst Du das mit einem normalen PC versuchen. Wenn Du die Messergebnissen tatsächlich für etwas sinnvolles verwenden willst, brauchst Du zusätzliche Hardware.
-Michael
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Hi Michael,
nee, nee, soll auf jeden Fall sinvoll sein. Ist für mein Studium!
Danke schonmal!
Eva
nee, nee, soll auf jeden Fall sinvoll sein. Ist für mein Studium!
Danke schonmal!
Eva
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Um das Problem eines nicht realtime-fähigen Betriebssystems zu umgehen, könnte man ja ein realtime-fähiges nehmen. In der Wikipedia sind unter 'Echtzeitbetriebssysteme' einige aufgeführt.
Eine einfach Lösung könnte linuxcnc sein. Dort wird zur Maschinensteuerung ein Ubuntu-Derivat verwendet, welches echtzeitfähig ist.
Eine einfach Lösung könnte linuxcnc sein. Dort wird zur Maschinensteuerung ein Ubuntu-Derivat verwendet, welches echtzeitfähig ist.
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Unter DOS [1] hat man früher die Datenverarbeitung an die Refreshrate des Bildschirms angepasst. Dadurch kommt es bei 60Hz zu einer auf 17ms genauen Darstellung. Wenn der Bildschirmtreiber mitspielt, sicher auch mehr. Allerdings kenne ich keinen Weg, die Abfragehäufigkeit der Tastatur zu ändern. Die wird mit 20Hz (der Wert ist eher geraten) abgefragt.
Ich würde aber eher die 20ms hinterfragen. Das ist typischerweise eine (eher niedrige) Varianz bei Reaktionszeiten um 200ms (je nach Aufgabe). Da gibt es dann auch Reaktionen über 500ms und unter 100ms. Ansonsten würdest du erwarten, dass deine Probanden die Aufgabe a mit sagen wir 90-110ms beantworten und Aufgabe b mit 140-160ms. Wozu bräuchtest du dann noch Statistik?
[1] Mit Freepascal kann man sicher auch für FreeDos kompilieren.
Ich würde aber eher die 20ms hinterfragen. Das ist typischerweise eine (eher niedrige) Varianz bei Reaktionszeiten um 200ms (je nach Aufgabe). Da gibt es dann auch Reaktionen über 500ms und unter 100ms. Ansonsten würdest du erwarten, dass deine Probanden die Aufgabe a mit sagen wir 90-110ms beantworten und Aufgabe b mit 140-160ms. Wozu bräuchtest du dann noch Statistik?

[1] Mit Freepascal kann man sicher auch für FreeDos kompilieren.
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
.
Zuletzt geändert von Bora4d am Do 16. Aug 2012, 15:38, insgesamt 1-mal geändert.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Ein "Realtime-linux" hört sich wie eine gute Idee an, wenn man Pascal programmieren will (linuxcnc kenne ich nicht, die Website sagt auf den ersten Blick nichts über realtime). Ich kenne da z.B,. das "Realtime Patch", habe es aber nicht ausprobiert.Jochen hat geschrieben:Eine einfach Lösung könnte linuxcnc sein. Dort wird zur Maschinensteuerung ein Ubuntu-Derivat verwendet, welches echtzeitfähig ist.
In Linux gibt es neben den normalen Proioritäten (die mit dynamischen Zeitscheiben arbeiten) "SCHED-REALTIME" Prioritäten, die eine echte Priorisierung vornehmen (Zeitscheiben werden nur für Programme mit exakt derselben Priorität verwendet).
Das ist dann zwar immer noch keine harte Realtime (weil die Interrupt-Handler noch unvorhersehbare und sich addierende Latenzen verursachen können), könnte aber in vielen Fällen in Verbindung mit einem Realtime-Linux reichen.
Gruß,
-Michael
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Das sagt das wiki dazu: http://wiki.linuxcnc.org/cgi-bin/wiki.pl?RealTimemschnell hat geschrieben: Ein "Realtime-linux" hört sich wie eine gute Idee an, wenn man Pascal programmieren will (linuxcnc kenne ich nicht, die Website sagt auf den ersten Blick nichts über realtime). Ich kenne da z.B,. das "Realtime Patch", habe es aber nicht ausprobiert.
Dort steht auch, dass es ein Patch für den Kernel ist. Zudem werden ein paar Tipps zur Verbesserung der 'RealTime performance' gegeben.
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Ich habe jetzt nicht den ganzen Thread gelesen, aber bei Windows gibt es dem QueryPerformanceCounter() damit kann man exakt die ms vom Betriebssystem auslesen. Zurück gegeben wird eine Integer-Zahl ab Einschalten vom Computer und zählt einfach immer weiter hoch.
Messe einfach mit QueryPerformanceCounter() die Zeit zwischen den Timer-Aufrufen und starten den Timer jedes mal mit der Differenz zum Soll neu.
Messe einfach mit QueryPerformanceCounter() die Zeit zwischen den Timer-Aufrufen und starten den Timer jedes mal mit der Differenz zum Soll neu.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 320
- Registriert: Sa 21. Mär 2009, 17:31
- OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
- CPU-Target: 64 Bit
Re: TTimer zu ungenau - wie funktioniert der EpikTimer?
Auf einem modernen Computer läuft einfach zu viel, um das wirklich akurat zu bekommen.
Ich denke, am besten wäre das mit einem Mikrokontroller (z.B.: Arduinoboard) zu machen...
Ich denke, am besten wäre das mit einem Mikrokontroller (z.B.: Arduinoboard) zu machen...