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
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
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