... kleine Routine zum Entprellen eines Tastersignals ... Beim Drücken des Tasters wird leider öfter mehrere Male geschaltet ...
Bei meinen Tastern (die 6Zent-Klasse ebenso wie die 20Zent-Klasse) stelle ich praktisch nie ein Prellen fest (seltsamerweise??) obwohl ich selten oder nicht bewußt irgendwelche Maßnahmen gegen EMV-Einflüsse treffe. Trotzdem habe ich manchmal Entprellmaßnahmen getroffen - allereinfachste Art, ich frage den Taster mehrfach hintereinander ab. Hier ein paar Codeschnippsel, das sollte reichen um den Vorgang zu verdeutlichen. Anm.: die Taster sind gegen GND geschaltet, daher gilt: PIN ist low => Taster gedrückt.
Code:
#define IsBitSet(ADDR,BIT) (((ADDR) & (1<<BIT))?1:0)
// Fragt Bit = 1?
#define IsBitClr(ADDR,BIT) (!((ADDR) & (1<<BIT))?1:0)
// Fragt Bit ab
#define PRTtstLCD PIND
#define Tst_A 6
#define TAan IsBitClr (PRTtstLCD, Tst_A)
// Taster A gedrückt ??
if ( TAan && TAan )
// Das ist nun die eigentliche Abfrage
// .. kann natürlich öfter ver&&det werden
Und ich kann über Fehlfunktionen wirklich nicht klagen *gg* .. dh es treten keine auf.
Lesezeichen