Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe


von Vitali Tscheroun (Gast)


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.

von Vitali Tscheroun (Gast)


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.

von Peter D. (peda)


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

von Vitali Tscheroun (Gast)


Lesenswert?

Das mit dem entprellen ist ja auch kein Problem.
Es muss doch eine "einfache" Lösung für das Problem geben?

Vitali.

von Johannes Raschke (Gast)


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

von Peter D. (peda)


Lesenswert?

"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

von Vitali Tscheroun (Gast)


Lesenswert?

Hochzählen ist gut,
aber ich muss ja die Werte auch den verschiedenen Tasten zuordnen
können.

Vitali.

von Vitali Tscheroun (Gast)


Lesenswert?

Peter: du solltest meinen Beitrag mal genauer durchlesen.
Bevor du hier grosse Sprüche klopst.
Danke.
Vitali.

von Vitali Tscheroun (Gast)


Lesenswert?

Das Prellen ist definitiv,an der Stelle kein Thema.

Vitali.

von Vitali Tscheroun (Gast)


Lesenswert?

Schade das mir keiner helfen kann,
aber danke trotzdem das ihr reingeschaut habt.
Vitali.

von crazy horse (Gast)


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?

von Vitali Tscheroun (Gast)


Lesenswert?

hey crazy,gute idee,
ich mache das gleiche.

von Sebastian (Gast)


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

von Peter D. (peda)


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

von Uwe (Gast)


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.

von Vitali Tscheroun (Gast)


Lesenswert?

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.

von Peter D. (peda)


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

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
Noch kein Account? Hier anmelden.