Das Tastenfeld mit 12 Ausgängen könnte man über eine Diodenmatrix
zusammenführen und an 4 Portpins anschließen. Funktioniert nur, wenn man
keine Tasten gleichzeitig drückt. Ein Vorschlag dazu:
Taste 1: an Pin0
Taste 2: an Pin1
Taste 3: Über 2 Dioden an Pin0 und Pin1
Taste 4: an Pin2
Taste 5: Über 2 Dioden an Pin0 und Pin2
Taste 6: Über 2 Dioden an Pin1 und Pin2
Taste 7: Über 3 Dioden an Pin0, Pin1 und Pin2
Taste 8: an Pin3
Taste 9: Über 2 Dioden an Pin0 und Pin3
Taste A: Über 2 Dioden an Pin1 und Pin3
Taste B: Über 3 Dioden an Pin0, Pin1 und Pin3
Taste C: Über 2 Dioden an Pin2 und Pin3
Zuerst wird in der Tastenabfrage-Routine geteset, ob irgendwo ein Signal
anliegt(PIN-Register mit 0x0F ver&en und auf 0 vergleichen). Dann wird
eine kleine Zeit gewartet, bis sich die Pegel richtig eingestellt haben.
Dann kann man direkt seine Tastennummer auslesen. Taste A, die
wahrscheinlich "Taste0" sein wird, würde ich dann mit einer bedingten
Anweisung nachkorrigieren.
mfg mf
PS:
Es müssen nicht unbedingt 18 Dioden verbraten werden, da gibt es auch
noch diodenlosere, freie Kombinaionen unter den 15 Nutzbaren.
Gehirnschmalz gefragt.