Brauche Hilfe

Gast #61373
Lesenswert?

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.
Gast #61374
Lesenswert?

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.
#61375
Lesenswert?

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
Gast #61377
Lesenswert?

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
Gast #61383
Lesenswert?

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?
Gast #61385
Lesenswert?

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
#61386
Lesenswert?

"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
Gast #61387
Lesenswert?

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.
#61389
Lesenswert?

@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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren