-
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo Nikola,
> das problem mit dem entprellen steht noch aus wie macht ihr das so ( generel )????????????[/quote]
meist häng ich 'nen RC-Tiefpass zwischen Taster und Eingang. Geht aber auch digital im Controler.
Der Mensch kann Tasten nicht schneller als 10 mal / Sekunde drücken.
Man kann also entweder in der Tastaturabfrage eine Pause von 50 - 100 ms einlegen, oder, falls der Taster an einem externen Interrupt hängt, schaltet man den externen Interrupt in der Interrupt Routine ab und startet einen Timer, der ihn nach 50 - 100 ms wieder einschaltet(*).
Die Zeit die man wartet/abschaltet ist recht unkritisch. Zu lang sollte sie nicht sein, sonst wirkt die Tastatur träge, zu kurz aber auch nicht, sonst ist der Schalter noch am prellen wenn man beginnt ihn wieder abzufragen.
Wenn man nur eine Tastenflanke haben möchte, dann sollte man die Taste nach der Wartezeit oder in der Timer-Routine nochmal auslesen. Sonst kann man nicht unterscheiden, ist es nun ein Prellen beim Taste-Drücken oder ein Prellen beim Taste-Loslassen.
Ciao
Werner
(*) Den Interrupt selbst abschalten, nicht global alle Interrupts.
z.B. "Disable INT0" falls Taster an INT0 hängt
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen