Reaktionszeitmessung Leichtathletikstart

Gast #916255
Lesenswert?
• ▲
▼
Hey Leute
Ich will folgendes realisieren:
Ein Reaktionszeitmessung eines Startenden Athletens.
Es wird eine Komplette startsequenz ablaufen ( lautsprecher + 
soundchip).
Ich will mit hilfe eines ATMega16 die reaktionszeit seit dem schuss und 
dem abdrückens des Athletens vom startblock messen. Abdrücken wird durch 
einen Drucksensor realisiert. Mein problem ist folgendes die 
zeitauflösung solte möglichst tausendstel oder genauer sein. wenn ich 
nur 1 athletenmessen wollte wäre es keinproblem aber ich will 2 paralell 
messen ( meines wissens hat der ATmega16 aber nur 2 interrupts...)

hat irgendjemand eine idee wie ich das realisieren könnte?

Entwicklungsumgebeung:
avrstudio 4.xxx
Programierstprache:
Bascom


Reaktionsmesser Lastenheft:
-  2 Zeiten messen
-  komplette Startsequenz (bereitsgeplant)
-  Ausgabe auf einem Display
-  Gehäuse mit Akku + Ladeschaltung (bereitsgeplant)
-  Bestzeiten Speicherung (bereitsgeplant)
-  Messung auf Tausendstel
-  Einstellungsmöglichkeit der Empfindlichkeit (bereitsgeplant)


Würde mich freun wenn ihr helfen könntet und hoffe ich habs einigermasen 
hinbekommen zu erklären was ich gerne machen würde.
hier oder unter :   icq:310701744 bzw chris7474@gmail.com könnt ihr mich 
erreichen danke ;)
Gast #916273
Lesenswert?
• ▲
▼
1 ms, da brauchst du für den Start-Stop keinen Interrupt, das ist ja 
unglaublich langsam. Mit 16MHz kann der uC (grob über den Daumen) 16000 
Befehle pro ms ausführen, das dürfte reichen.

Idee:
Interrupt { // 1 ms
zählt einen ms-Zähler (long TimeAkt) hoch.
}

Hauptschleife {
sieht nach ob Start ausgegeben ist,
Zeitstempel abspeichern (Start[athlet]=TimeAkt)

sieht nach, ob Drucksensor von athlet anspricht,
Zeitstempel abspeichern (Gestartet[ahtlet]=TimeAkt)

berechnet Startdauer[athlet]=Gestartet[ahtlet]-Start[athlet])

wenn fertig: gibt das Zeug auf dem Display aus
}

Dazu braucht es also nur 1 Timer-Interrupt, der Rest geht per Polling.

Und prinzipiell auch noch wesentlich schneller als 1 ms.
#916274
Lesenswert?
• ▲
▼
Hallo Chris,

das sollte auch ohne Interrupt gehen. Tausendstel Auflösung entspricht 
1ms.

Wenn Du einen ATmega mit 8MHz laufen läßt kann dieser fast 8000 Befehle 
in dieser Millisekunde verarbeiten.

Kritischer sehe ich da den Punkt der Genauigkeit. Standard Quarze haben 
eine recht hohe Streuung, sowie Temperaturdrift.
Um dies genau hinzubekommen ist schon einiges an Aufwand notwendig 
(Quarzofen, o.ä. ).

Ansonsten sollte der Rest kein Problem dartstellen, da der gesamte 
Vorgang sequentiell geschieht.

Grüße
Hans-Josef
Gast #916278
Lesenswert?
• ▲
▼
Super schnelle antwort!
Ja das mit den 8000 befehlen ist mir bekannt ich muss aber dann trozdem 
ienen interrupt für das hochzählen des Zählers mitnutzen?

Das problem mit den quarzen is mit bekannt wobei ich auch die 
möklichkeit hätte an einen Temperaturgeregelten "ultra" genauen quarz zu 
kommen ;)

also ohneweiteres ohne interrupts möglich?

ganz normale if abfrage zur stop auslösung?

Gruß
Gast #916288
Lesenswert?
• ▲
▼
>Kritischer sehe ich da den Punkt der Genauigkeit. Standard Quarze haben
>eine recht hohe Streuung, sowie Temperaturdrift.
Sehe ich jetzt gar nicht so kritisch.

Wenn ein Standard Quarzoszillator verwendet wird,
habe ich einen Fehler von 50ppm. Also 0,05 Promille.
Pro 20 Sekunden wird dann maximal ein Fehler von 1 ms auftreten.
Das sollte doch hinnehmbar sein?

Zudem betrifft dieser Fehler alle startenden Athleten
(wie z.B. auch Gegenwind und bucklige Bahn),
da soll dann bloß keiner jammern.
Gast #916310
Lesenswert?
• ▲
▼
hehe ich selbst binn elektronik azubi werde sicher einen geheizeten 
quarz findne ^^auserdem faktoren wie gegenwind und unebende bahn silnd 
bei meiner messung nicht berücksichtigt. ( wird rein nur die 
reaktionszeit gemessen)
und wie schon gesagt wurde es sinnd dann alle vom gleichen betroffen ^^



danke leute ;) werde mich mal melden wenns geklappt hat und ggf bilder 
so wie quellcoede uppen ;) falls jemand interresiert

Gruß

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.