PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prellzeit festlegn



Duesentrieb
20.03.2011, 14:58
Hallo,

ich frage über einen PCF8574 über den 12C Bus eine ganze Menge Taster ab.
Da die Taster prellen muss ich eine Zeit vorgeben über die das Tastsignal mindestens anstehen muss.

Als ich die Taster noch direkt an den Ports abfragte habe ich das über "Debounce" abgefangen.

Wie muss ich das nun machen?

Richard
20.03.2011, 16:01
Hallo,

ich frage über einen PCF8574 über den 12C Bus eine ganze Menge Taster ab.
Da die Taster prellen muss ich eine Zeit vorgeben über die das Tastsignal mindestens anstehen muss.

Als ich die Taster noch direkt an den Ports abfragte habe ich das über "Debounce" abgefangen.

Wie muss ich das nun machen?

Wenn es nicht zu aufwändig wird mit Hartware = Retriggerbares mono Flop. Aus einer Beschreibung einer UART, "der Pegel wird 16 x (pro Bit) abgefragt und der Mittelwert H oder L gebildet." Das kostet natürlich Zeit, das sollte man in inline ASM machen.

Gruß Richard

Duesentrieb
20.03.2011, 16:19
Hallo,

Hardware scheidet aus weil es zu aufwendig wäre.
Ich dachte es gibt so was ehnliches wie "Debounce"?

BMS
20.03.2011, 16:31
Hallo,
es könnte vielleicht auch ein kleines RC-Tiefpassfilter abhelfen.
Oder falls du Pullups verwendest und der Taster gegen GND schaltet, könntest du einen Kondensator parallel zum Taster schalten. Das ließe sich in SMD-Bauform auch recht kompakt nachrüsten.
Grüße, Bernhard

Duesentrieb
20.03.2011, 16:36
wenn es keine einfache Softwarelösung gibt versuch ich das mal mit dem Kondensator

Danke!

TobiKa
20.03.2011, 16:59
Ja, ein 100nF Kerko sollte gut funktionieren.

BMS
20.03.2011, 17:27
Hallo,
wenn der Pullup 10k hat und du einen 100nF Kerko einlötest, gibt das eine Zeitkonstante von 1ms. Reicht das? Oder prellt der Taster "langsamer"? Sonst muss der Kondensator oder der Pullup größer werden. ;)
Grüße, Bernhard