mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Reaktionszeit ermitteln


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich hab noch nicht viel Ahnung von Assembler, muss aber einen 
Reaktionstester fürn Mikrocontroller programmiere. Man startet mit einer 
bestimmten Taste, dann muss nach ner zufälligen wartezeit eine LED 
leuchten. Sobald die LED leuchtet, muss die testperson den taster so 
schnell wie möglich drücken und die reaktionszeit muss ausgegeben 
werden. Mein Problem ist, dass ich nicht weiß wie ich einen Takt für die 
Ermittlung der Zeit erzeugen kann. Als vom Zeitpunkt an wo die LED 
aufleuchtet. Kann mir jemand eine einfache Lösung bieten? Die Zeit muss 
in 1/100 sec ausgegeben werden

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hi, ich hab noch nicht viel Ahnung von Assembler, muss aber einen
>Reaktionstester fürn Mikrocontroller programmiere.

Wieso "muß"?

Hier kannst Du Dich informieren:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Uhr

Autor: Löti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also theoretisch ganz einfach: gleichzeitig mit der LED startest Du 
einen Timer des AVR. Der Knopfdruck stoppt den Timer und dann rechnest 
Du anhand der Frequenz des Timers zurück. Wie Du mit dem Timer umgehen 
musst, steht hier:
http://www.mikrocontroller.net/articles/AVR-Tutorial

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris wrote:

> dann muss nach ner zufälligen wartezeit eine LED
> leuchten.

Das ist ein ernstes Problem, dessen Lösung sehr aufwendig sein kann, je 
nach geforderter Güte des Zufalls.


> Mein Problem ist, dass ich nicht weiß wie ich einen Takt für die
> Ermittlung der Zeit erzeugen kann.

Das ist kein ernstes Problem. Du hast Timer im MC, benutze einen davon 
(siehe Tutorial).


Peter


Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger wrote:
> Chris wrote:
>
>> dann muss nach ner zufälligen wartezeit eine LED
>> leuchten.
>
> Das ist ein ernstes Problem, dessen Lösung sehr aufwendig sein kann, je
> nach geforderter Güte des Zufalls.

Man kann ja einfach die Dauer des Tastendrucks messen, die Reihenfolge 
der Bits dieses Messergebnisses umdrehen, und schon hat man eine 
"zufällige" Zahl zur Verfügung.

Gruß,
Magnetus

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin noch nicht soweit das ich weiß was "out" das r vor rcall oder 
rjmp und ldi bedeutet.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris wrote:
> Ich bin noch nicht soweit das ich weiß was "out" das r vor rcall oder
> rjmp und ldi bedeutet.

http://www.avr-asm-tutorial.net/avr_de/beginner/co...


Peter

P.S.:
Immerhin wissen wir jetzt wenigstens, daß Du einen AVR (welchen ?)
benutzen willst.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SRy, aber für was steht AVR? xD Ich hab halt nen Mikrocontroller vom 
Lehrere mitbekommen, welcher typ es ist muss ich nachschaun

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es ist der 8051, wir haben eine Formkelsammlung mit SPrungbefehlen etc. 
ausgeteilt bekommen, da ist aber niergsn das Zeug ausm Tutorial 
beschrieben.

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>es ist der 8051, wir haben eine Formkelsammlung mit SPrungbefehlen etc.
>ausgeteilt bekommen, da ist aber niergsn das Zeug ausm Tutorial
>beschrieben.

Das glaub ich gerne ;-)

Schau mal bei erikbuchmann nach, da gibts ein Tutorial für den 8051.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris wrote:
> es ist der 8051, wir haben eine Formkelsammlung mit SPrungbefehlen etc.
> ausgeteilt bekommen, da ist aber niergsn das Zeug ausm Tutorial
> beschrieben.

Jau is kein Wunder, das Tutorial is AVR.

Deshalb auch mein Schluß aus RCALL, OUT, LDI, das sind nämlich 
AVR-Befehle.


Is aber kein Problem, nimmste eben 8051 Befehle, auch die kann man 
lernen:

http://www.erikbuchmann.de/


Peter

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die Tipps, hab halt bis jetzt nur gelernt wie man schleifen 
macht xD

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist in der Aufgabenstellung explizit Assembler verlangt ?

Wieviel Zeit hast du um das Programm zu erstellen ?

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja nur assembler, ich hatte um die 2-3 monate zeit hab jetzt aber nur 
noch 2 wochen xD

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann nimm dir mal für die 2 Wochen nichts anderes mehr vor.

Hättest du C benutzen können, dann hättest du mit deinem Wissensstand 
durchaus noch eine gute Chance gehabt.

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.