www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe


Autor: Vitali Tscheroun (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Vitali Tscheroun (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Vitali Tscheroun (Gast)
Datum:

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

Vitali.

Autor: Johannes Raschke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Vitali Tscheroun (Gast)
Datum:

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

Vitali.

Autor: Vitali Tscheroun (Gast)
Datum:

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

Autor: Vitali Tscheroun (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Prellen ist definitiv,an der Stelle kein Thema.

Vitali.

Autor: Vitali Tscheroun (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade das mir keiner helfen kann,
aber danke trotzdem das ihr reingeschaut habt.
Vitali.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Vitali Tscheroun (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey crazy,gute idee,
ich mache das gleiche.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Vitali Tscheroun (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.