Forum: Mikrocontroller und Digitale Elektronik Mein Tastaturmatrix Einlese- und Entprell-PAP


von H-G S. (haenschen)


Angehängte Dateien:

Lesenswert?

Hallo!

Hier für Interessierte:
Ein Programmablaufplan zu einer Entprellten Tastaturmatrix-Abfrage in 
einem Interrupt-Unterprogramm (UP) das alle 50ms aufgerufen wird.

Es gibt diverse Zähler und Flags die im 8051-RAM untergebracht sind.
Die "Schiebe"-UPs schieben über IO-Expander-Schieberegister die Matrix 
an und lesen auch seriell ein.

Edit:
Es gibt wohl das Problem dass eine Taste prellt und offen ist während 
die Spalten abgefragt werden im "UP ErmittleTastencode". Doch das wird 
wohl bei der Abfrage "2x gleiche Taste gedrückt" aufgefangen, das eben 
nur wahr ist wenn die Taste eine Weile ruhig anliegt.

Das "UP Pieps" hat seinen eigenen Pieps-Zähler den es jeden Interrupt 
runterzählt und den Piezo-Piepser piepsen lässt solange der Zähler 
größer Null ist.

Edit 2:
Es scheint es gibt auch ein Problem mit der Benennung des Zählers 
"Gleiche-Taste-gedrückt". Es geht vielmehr um das Zählen wie oft 
hintereinander ununterbrochen gedrückt war - nicht so sehr ob es immer 
die gleiche Taste war. Aber vielleicht ist das ja auch nützlich, wenn 
man sichergeht dass es dieselbe Taste war  :-)

Edit 3:
Mir war eine Vermeidung von Doppelerkennungen wichtig, daher habe ich 
nicht vorgesehen dass eine ständig gedrückte Taste erkannt wird (zB. für 
Bildlauf). Das kann man aber vielleicht noch reinbauen zB. indem man im 
Hauptprogramm das Flag für "Keine-Taste-10x-gedrückt" auf 1 setzt bevor 
man das Tasten-Queu-Flag löscht - damit könnte man evtl. eine 
festgehaltene Taste erkennen.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.