Forum: Mikrocontroller und Digitale Elektronik 5x5 Tastaturmatrix und es wir nur Müll eingelesen


von Friedrich (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mich mit einem AT90S8515 einem STK500 versucht eine
Tastaturmatrix 5x5 zu bauen.

Die Matrix habe ich ohne weitere Bauteile zwischen Port A und Port B.

Den Quellcode habe ich mal angängt. Der ist fast genauso im Buch
Bascom.AVR Beschrieben.

Nun wenn ich eine Taste drücke bekomme ich jedesmal eine andere
Ausgabe.

Kann es sein das die I/O Pins falsch konfiguriert sind oder das
benachbarte Pins da unsinn machen?

Wenn es nicht am Quellcode liegt, kann es ja auch an meiner Hardware
liegen. Wie lange darf ein Flachbandkabel sein damit die Matrix noch
erkannt wird (übersprechen) ich habe die Tastaur ca 40cm abgesetzt.

Tia jetzt bin ich doch etwas ratlos.

Vielleicht hat ja jemand ne idee oder schon mal so ein Problem gehabt.
Bin für jede idee dankbar wie ich das eingrenzen kann.

Grüße Friedrich

von Peter Dannegger (Gast)


Lesenswert?

Bei ner Matrix müssen alle Ausgänge auf Low bleiben und nur das
Direction-Bit darf umgeschaltet werden.
Sonst kommt es bei mehreren gedrückten Tasten zu Datenkämpfen.


Ob das Programm funktionell richtig ist, kann ich nicht sagen, ich kann
kein Basic, nur Assembler und C.


Peter

von Friedrich (Gast)


Lesenswert?

Hallo Peter,

habe den Fehler gerade selber gefunden. War eine falsche Schreibweise
hatte ein $ statt dem benötigten & geschrieben

Falsch:    Portb = $b00011111
Richtig:     Portb = &b00011111

Also kein Hardwarefehler.

Zu einem Tastenkampf kommt es nicht da die hochwertigste Taste gewinnt.
Also die zuletzt geprüfte gedrückte hat dann gewonnen.

Mir wäre es auch lieber wenn ich jede Taste genau identifizieren könnte
die gedrückt ist. Bei einer Matrix lassen sich, ab einer bestimmten
Menge, die Tasten ja nicht mehr unterscheiden.

Grüße Friedrich

von Erich (Gast)


Lesenswert?

Hallo Peter,
kann man dein Programm Get8Key4 auch für eine 3x4 Matrixtastatur
benutzen?

von Unbekannter (Gast)


Lesenswert?

Wenn bei einer Tastaturmatrix immer alle Tasten erkannt werden sollen,
darf jede Taste nur über eine Diode den Schnittpunkt in der Matrix
schalten. Dann ist Eindeutigkeit gewährt.

von Erich (Gast)


Lesenswert?

ja, aber dies ist doch bei einer fertigen Matrixtastatur gar nicht
möglich, oder?

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.