Entprellen von Tasten

Begonnen von Ottmar, 19.06.2025, 18:11:04 CEST

Vorheriges Thema - Nächstes Thema
Keywords TastenabfrageKontakte entprellen

Ottmar

Hallo zusammen,
für Interessierte, welche noch in MPASM-Assembler programmieren, möchte hier mal die (fast?) perfekte Entprellroutine vorstellen, welche ich schon immer zum Entprellen von bis zu 8 Tasten verwendet habe. Diese Routine stammt nicht von mir, sondern von Scott Dattalo, der diese ca. 1999 für PIC-MCU's geschrieben und auf seiner leider nicht mehr existenten Homepage veröffentlicht hat.
Funktion: 
Im wiederkehrenden Aufruf der ISR wird der Status der Portpins auf Veränderung geprüft. Die Veränderung wird für den nächsten Durchlauf gespeichert. Bleibt der Status an einemoder auch mehreren Pins, an welchen die Tasten angeschlossen sind 4x unverändert, wird diese Änderung in die Variable "KeyPress" übertragen. Es lassen sich also auch "kombinierte" Tastenbetätigungen abfragen. Im Hauptprogramm lässt sich dann jedes Bit in "KeyPress" als Flag abfragen. So kann die Auswertung des Tastendrucks erfolgen. Ein "Polling", des Tastenzustandes erübrigt sich somit. 
Der eigentlaiche Entprellcode benötigt gerade mal 17wc (working cycles).

mfG Ottmar

picass

#1
Und hier die Klassiker-Version für das Entprellen von Tasten. Die stammt aus der Reihe der 13 Lektionen, welche von Microchip zu dem PICkit Low Pin Count Demo Board - ach, ich liebe diese Bezeichnung - mitgeliefert wurde. Sie ist fast im Original...., zu den Änderungen siehe unten. In diesem Orig wird schlicht eine Verzögerungs-Routine von 5 mS Dauer nach einer Tastenbetätigung aufgerufen.

Zu den Änderungen: eigentlich wollte ich nur ganz schnell und ganz kurz die Microchip Vorlage abscannen. Aber wer benutzt schon regelmäßig ein OCR-Prog ? Ich nicht. Das Meine fand ich nach längerem Suchen auf einer Hd, welche von WinXP befeuert wurde. Wäre ja in Ordnung, aber der dazu passende Scanner war schon längst nicht mehr vorhanden. Mein aktuelles Multigerät wird kaum über einen XP-Treiber verfügen. Also dann nach OCR-Progs geschaut und da zuerst nach Kostemlosem. Auch gefunden, aber das "Beste" aus diesem Angebot peilte vom Jahrgang 2015, war für Win7 und  seitdem nicht weiter entwickelt. Das funktionierte zwar unter Win10, stolperte aber unentwegt über die vielen Sonderzeichen wie Apostroph's und Ähnliches. Das lief drauf raus, dass furchtbar viele Korrekturen nötig wurden und Vieles doch noch eingetippt werden musste. Vorsorglich wurde das "fertige" Konstrukt in meine MPLAB-Version verfrachtet und produzierte dort Fehler um Fehler. Dass das OCR-Prog gelegentlich beim Einscannen aus Nullen "große Oh's" erzeugt hatte, war ja noch nachvollziehbar. Aber dauernd vermeldete der Debugger Kommata oder andere Zeichen, welche gar nicht sichtbar waren. Kurzum: ob gewünschte Syntax oder Steuerzeichen..., da war beim OCR-Vorgang ganz Vieles durcheinander geraten. Deshalb nenne ich den Namen dieses Progs erst gar nicht.
Ich hatte dann solange geändert, bis der Debugger keinen Fehler mehr vermeldete. Aber echt getestet hatte ich das nicht. Zur Gegenüberstellung und zum Vergleich wird es aber reichen...., hoffentlich.
Grüße, picass

picass


Schnellantwort

Name:
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

🡱 🡳