Matrix Tastatur Low Aktiv mit Diode macht ärger

OP #905936
Lesenswert?
• ▲
▼
Hallo Leute,
ich habe hier eine Matrix Tastatur (3*5) (Low Aktiv) über BAT41 Dioden 
entkoppelt (siehe Angang)
Controller: ATMEGA 16
Takt 16 Mhz
Sprache Assembler.

Habe schon das Forum durchsucht, aber immer nur Lösungen für High Aktive 
Tastatur Matrizen gefunden. Darum der Thread hier.

Es funktioniert alles soweit super, die 3 Zeilen werden nacheinander 
abgefragt und Entprellt über die "Peter Danneger Funktion".
Problem: trotz der Trennung über die Dioden sind die Spalten nicht von 
einander getrennt, sprich: Drücke ich alle 5 Tasten der mittlere Reihe 
und dazu eine der oberen Reihe, ist die komplette Reihe "gedrückt" 
erkannt.
Ich habe schon versucht zu sehen, wie groß die Zeiten zwischen den 
verschiedenen "Umschalten" der Reihen ist und sogar die 16Mhz extern auf 
interne 1Mhz gesetzt, um zu sehen, ob es an der Laufzeit liegt, die sich 
durch internen Pullup und Diode ergeben.
Wenn ich mit einem Scope messe, dann kann man sehen, daß mein Sourcecode 
richtig ist, sprich die Spalten werden korrekt nacheinander 
"abgetastet", also die jeweilige Zeile auf low gesetzt.
Die Anstiegszeit für einen solchen Vorgang beträgt 9ns, die Zeit, in der 
eine Zeile low geschaltet wird, ist mit 148ns also eigentlich lang 
genug.
Was ist hier falsch?
Angehängte Dateien:

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.