Problem beim auslesen einer 4x3 Matrixtastatur

OP #1117537
Lesenswert?

Hi,

ich hoffe einer von euch kann mir bei meinem Problem beim
Auslesen der Matrix helfen. Ich habe eine Routine von
Peter Dannegger für eine 4x4 gefunden, diese leicht geändert.
Funktionierte gleich, ich bekam auch einen keycode zwischen 1-12,
leider nicht den Richtigen ( z.B. eine 12 für eine gedrückte 1 ).

Schnell die Werte für col und row in den Abfragen geändert, so das z.B
für eine "9" ein 2(col) + 7(row) zurückgegeben wird, also
1
return col + row;

Einige Tasten funktioneren stabil, andere nicht, eine gedrückte 12 gibt
eine 12 zurück, eine 9 beim erstmaligen Drücken eine 14, dann eine 9.

Benutze ich Peters  " return col - row ", habe ich immer einen falschen
( na klar ), aber immer den gleiche Wert bei drücken der gleichen Taste.

return col + row -> Keinen stabilen Rückgabewert bei gleicher
                    Taste, machmal o.k.
return col - row -> Immer falsch, aber immer gleich falsch ;-)

Ich habe verschiedene Datentypen ausprobiert, brachte nichts, aber
eine simple addition sollte doch mit einem unsigned char möglich sein.

Hoffe ich konnte meine Problem deutlich machen,

best regards,

MaxMeise
Angehängte Dateien:
#1117593
Lesenswert?

Max Meise wrote:

>
1
return col + row;

Es hat schon seinen Grund, warum ich die Differenz genommen habe.

Das Testen von Reihe und Spalte erfolgt ja nacheinander und das Drücken 
völlig zufällig.
Daher kann es sein, daß nur eines erkannt wurde und das wird durch die 
Differenz abgefangen, weil ja davor steht:
1
row = col;


Peter

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