mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Reaktionszeitmessung Leichtathletikstart


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hans Josef (hjm)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch dir danke  lkmiller ( hab deinen post erst danach gesehn ).

Also wenn das ohne weiterres rennt ;)

Bedanke mich bei euch super tolles forum.

Gruß

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.