Hallo, ich brauche eure Hilfe.Ich habe eine Tastatur mit 8 Tasten(keine Matrix) an den PORTB meines AVR angeschlossen. Nun möchte ich jedesmal wenn eine der Tasten betätigt wird,sich ein Registerwert ändert,z.B.r16. Der Wert muss jedesmal ein anderer sein,ich meine also folgendes, wenn z.B.die Taste 1 betätigt wird,wird in r16 ein Wert reingeschrieben(egal welcher),wenn die Taste 1 wieder betätigt wird soll sich der Wert wieder ändern und genau so mit den anderen Tasten. Ich wäre für eure Hilfe sehr dankbar,versuche schon den ganzen Tag einen Assembler-Cod dafür zu schreiben,aber bis jetzt ohne Erfolg. Gruss. Vitali.
Ich merk das schon,das Interesse ist nicht besonders gross. Aber ich brauche wenigstens einen Lösungsansatz,oder Assembler Befehle die mir bei der Lösung helfen. Danke. Gruss. Vitali.
Vergiß Assembler, mal Dir erstmal einen ausführlichen Programmablaufplan. So einfach aus der hohlen Hand zu koden, geht nicht. Denke dran, daß Tasten entprellt werden müssen. Und Du willst bestimmt auch nicht, daß was passiert, solange die Taste gedrückt ist sondern nur beim Wechsel von Losgelassen nach Gedrückt. Peter
Das mit dem entprellen ist ja auch kein Problem. Es muss doch eine "einfache" Lösung für das Problem geben? Vitali.
lass' doch einen 8-Bit Wert ständig hochzählen. Wenn eine Taste gedrückt wird, schreibst Du den aktuellen Wert in Dein Register (z.B. R16). So müßten im Prinzip Zufallswerte entstehen. So wie ich mir das vorstelle, sind das höchstens 10 Zeilen, oder habe ich Dein Problem falsch verstanden? Johannes
"Das mit dem entprellen ist ja auch kein Problem." Komisch, daß dann dieses "Nicht-Problem" so oft hier im Forum auftaucht. Wie ich Dein Posting sehe, ist es sogar Dein Hauptproblem. Peter
Hochzählen ist gut, aber ich muss ja die Werte auch den verschiedenen Tasten zuordnen können. Vitali.
Peter: du solltest meinen Beitrag mal genauer durchlesen. Bevor du hier grosse Sprüche klopst. Danke. Vitali.
Schade das mir keiner helfen kann, aber danke trotzdem das ihr reingeschaut habt. Vitali.
statt zu drängeln, könntest du ja auch die eigenen grauen Zellen mal anstrengen. Um diese Zeit habe ich keinerlei Lust mehr, über irgendwas elektronisches nachzudenken. Soll ich dir sagen, was ich jetzt mache?
hm, also meiner bescheidenen Meinung nach machst du das am besten mit in r16,$16 ; Pins von PortB lesen in ner Timer ISR oder in ner Schleife im Hauptprogramm in R16 steht dann jeweils welche Tasten gedrückt sind. zb. 01111111 Taste 8 gedrückt zb. 01111011 Taste 8 und 3 gedrückt das ganze dann über AND und Sprüngen auswerten. Seb
"Peter: du solltest meinen Beitrag mal genauer durchlesen. Bevor du hier grosse Sprüche klopst." Meinst Du wirklich, daß man so Hilfe bekommt ? Wenn ich jemanden etwas frage und merke, der hat mich nicht richtig verstanden, dann versuche ich es ihm nochmal ausführlicher oder anders zu erklären. Und mit dieser Methode habe ich dann immer die benötigten Antworten bekommen. Und besonders in Deinem Fall, wo jeder etwas völlig anderes antwortet: Du solltest Deinen Beitrag mal genauer formulieren, bevor Du hier grosse Sprüche klopst. Tschüß, Peter
Hi! 1. Beitrag >wenn z.B.die Taste 1 betätigt wird,wird >in r16 ein Wert reingeschrieben(egal welcher),wenn die Taste 1 wieder >betätigt wird soll sich der Wert wieder ändern und genau so mit den >anderen Tasten. weiterer Beitrag: >aber ich muss ja die Werte auch den verschiedenen Tasten zuordnen >können. Ja was denn nun? Soll beim Betätigen von zb.Taste1 jedesmal ein anderer Wert drinnstehen oder nicht. Wenn ich das aber so überdenke dürfte Sebastians Ansatz >zb. 01111111 Taste 8 gedrückt >zb. 01111011 Taste 8 und 3 gedrückt in Verbindung mit Peter's "Get8keyn.asm" deine Lösung sein. So und nun strenge mal deine grauen Zellen an. MFG Uwe Habe schnell noch mal in "Get8keyn.asm" reingeschaut. Ich denke das ist genau das was du brauchst.
Danke für den Gedankenaustausch. Ich habe das Problem nun selbst gelöst. Vitali. P.S. Peters "Get8keyn.asm" kann man echt nicht gebrauchen,ist meine Meinung.
@Vitali "Ich habe das Problem nun selbst gelöst" Wenn man nicht vorhat, die Lösung auch mitzuteilen, dann hast Du den Zweck eines Forums nicht verstanden. Das beruht nämlich auf Gegenseitigkeit, d.h. nicht nur nehmen sondern auch geben. Es macht jedenfalls keinen guten Eindruck, wenn man noch extra mitteilt, daß man zu den "nur Nehmern" gehört. Vielleicht hätte man sogar an Hand der Lösung gesehen, was wirklich Dein Problem war. "...kann man echt nicht gebrauchen..." Bleibe doch wenigstens ehrlich und schreibe "...habe ich echt nicht verstanden...". Peter
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.