Forum: Mikrocontroller und Digitale Elektronik Debounce von Tasten mit dem Candidate-Pattern (Platformunabhängig, Theorie)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes F. (jofe)


Lesenswert?

Andreas T. schrieb:
> Geruch und Smell

Worin liegen denn die Unterschiede und Differences dazwischen?
von Jens M. (schuchkleisser)


Lesenswert?

Hannes J. schrieb:
> Holt ihr euch immer noch einen über diesen KI-Mist mit Bullshit-Bingo
> runter?

Dieses.
Vor allem
- nach Monaten Ruhe
- auf einem Feiertag
- ab halb zwei morgens bis zur Mittagszeit
von Alexander (alecxs)


Lesenswert?

Was wird denn gefeiert?
von Johannes F. (jofe)


Lesenswert?

Jens M. schrieb:
> Dieses.
> Vor allem
> - nach Monaten Ruhe
> - auf einem Feiertag
> - ab halb zwei morgens bis zur Mittagszeit

Und insbesondere: an einem Freitag. :-D
von Joachim M. (jmlaser)


Lesenswert?

Alexander schrieb:
> Versuchen wir es anders. Die beiden Möglichkeiten sind in erster und
> letzter Variante abgebildet.if (sr="11111110")...   << sofort beim
> Wechsel 1->0
> if (sr="11110000")...   << bei "sauberer Flanke" 1->0 (kritisch)
> if (sr="10000000")...   << wenn Wechsel 1->0, und 0 liegt stabil

> Welche ist jetzt Entprellen und welche Entstören? In welchem konkreten
> Beispiel soll es vorteilhaft sein Ersteres dem letzten vorzuziehen?
> Ändert sich die Totzeit/Latenz (z.b. Drehgeber?)

Steht doch dran:
1. Reaktion SOFORT bzw. nach 1 Takt beim Wechsel von 1 zu 0
2. Abfrage nach SAUBERER FLANKE, aber kritisch, weil dieser Zustand 
evtl. nicht erreicht wird.
3. Maximale Latenz, Signal muss für mindestens 7 Zyklen lang 0 sein.

> Oder noch einfacher. Für welche Anwendungen bringt es was ggü. der
> anderen Variante?

1. ist die schnellste Reaktion auf eine fallende Flanke
2. ist eine Abfrage auf perfekte Flanke, aber nichts fürs Entprellen.
3. ist die Abfrage, die einen langen "Tastendruck" erfordert.

Und?

Hippelhaxe schrieb:
> Keins der abgebildeten Signale weist irgend eine Form von
> PRELLEN auf.

Haha, ja logisch, das sind ja auch VERGLEICHSDATEN. Wer lesen kann 
(if... = ...) ist im Vorteil.

> Was haben diese Beispielsignale in einer Diskussion über
> ENTPRELLUNG zu suchen?

Alles?
Nur leider habt Ihr wohl nicht verstanden, dass es hier um die Umsetzung 
in Logik, also in CPLDs oder FPGAs geht. Es lässt sich natürlich auch 
mit diskreter Logik aufbauen oder auch per Software in einem 
Mikrokontroller realisieren. Können kann man alles, wers unbedingt 
braucht.

Der Vorteil im FPGA ist natürlich, dass alles parallel geschieht, ohne 
dass Zeit in einer Interruptroutine aufgewendet werden muss.
Da kann man zig-Signale jeweils in eine Schieberegister takten, ohne 
dass es "Laufzeit" kostet.
Das Prinzip ist die Entprellung mittels Schieberegister.
Das können neben Tasten auch z.B. Signale einer SPI-Schnittstelle oder 
UART sein. Oder auch externe Signale mit flacher Flanke.
Das Signal wird mittels einem Takt ständig in ein Schieberegister 
geschoben.
Nun wird der Inhalt des Schiebregisters mit einem festen Wert 
vergleichen (siehe oben) um eine Aktion auszulösen.
Man kann nun die Empfindlichkeit bzw. die Filterwirkung durch die Länge 
des Schieberegisters, durch die Frequenz des Schiebetaktes und durch die 
Inhalte der Vergleichswerte steuern.

Im Beispiel wird von RECHTS eingeschoben.
Nehmen wir einen Takt von 1KHz an.
Bei der Folge "11111110" wird das Signal nach 1ms als Low erkannt, 
musste aber vorher für mindestens 7ms High sein.
Bei der Folge "11110000" muss das Signal 4ms High und danach 4ms Low 
sein.
Kritisch deshalb weil es passieren kann, dass so ein Muster gar nicht 
ankommt. Hier wird quasi auf eine ideale Flanke abgefragt.
"11111110" oder "00000001" reagieren aber IMMER, weil irgendwann 
wechselt das Signal ja nach einer langen Ruhephase. Die beiden sind 
daher die erste Wahl ohne Risiko. Die Mindestzeit zwischen zwei 
Signalwechseln ist hier 8ms.
Die Reaktionszeit aus der Ruhelage heraus ist aber nur 1ms.
Wird das Schieberegister mit der halben Frequenz getaktet, verdoppeln 
sich die Zeiten usw.
8Bit sind auch nicht für das Schieberegister nötig. In der Regel reichen 
3-4Bit aus.

Je schneller die Reaktionszeit sein soll umso höher muss der Schiebetakt 
sein.

Je sicherer die Entprellung sein soll umso länger muss das 
Schieberegister sein.

Die Balance zwischen Schnelligkeit und Sicherheit bestimmt die Anzahl 
der Bitstellen und die Taktfrequenz.

Wenig Bitstellen und sehr niedrige Frequenz = sichere Entprellung, 
langsame Reaktion.

Wenig Bitstellen und hohe Frequenz = unsichere Entprellung, sehr 
schnell.

Viele Bitstellen und sehr niedrige Frequenz = extrem sichere 
Entprellung, sehr langsam.

Viele Bitstellen und hohe Frequenz = sichere Entprellung, sehr schnell.
von Alexander (alecxs)


Lesenswert?

Warten oder Reagieren, das ist hier die Frage.
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.