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
>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
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
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
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
Ich bin noch nicht soweit das ich weiß was "out" das r vor rcall oder rjmp und ldi bedeutet.
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/commands.html Peter P.S.: Immerhin wissen wir jetzt wenigstens, daß Du einen AVR (welchen ?) benutzen willst.
SRy, aber für was steht AVR? xD Ich hab halt nen Mikrocontroller vom Lehrere mitbekommen, welcher typ es ist muss ich nachschaun
es ist der 8051, wir haben eine Formkelsammlung mit SPrungbefehlen etc. ausgeteilt bekommen, da ist aber niergsn das Zeug ausm Tutorial beschrieben.
>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.
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
danke für die Tipps, hab halt bis jetzt nur gelernt wie man schleifen macht xD
Ist in der Aufgabenstellung explizit Assembler verlangt ? Wieviel Zeit hast du um das Programm zu erstellen ?
ja nur assembler, ich hatte um die 2-3 monate zeit hab jetzt aber nur noch 2 wochen xD
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.