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?