5x5 Tastaturmatrix und es wir nur Müll eingelesen

Gast #176624
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
Angehängte Dateien:
Gast #176625
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
Gast #176626
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

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