Bei allen Software-Debouncing-Routinen, die ich gesehen habe, muss gewartet werden, bis einige aufeinanderfolgende Lesevorgänge eines Signals 0 oder 1 zurückgeben. Das ist natürlich sinnvoll. Dies bedeutet jedoch, dass ein unvermeidlicher Kompromiss zwischen Robustheit und Latenz besteht. Je mehr Messwerte Sie benötigen, um eine Änderung des Pegels zu akzeptieren, desto länger ist die Antwortzeit.
Es scheint eine einfache Alternative zu sein, die Eingabewerte für eine bestimmte Zeit nach einer Flanke einfach zu ignorieren. Wenn der Switch 0 gelesen hat und dann eine einzelne Abfrage eine 1 zurückgibt, interpretieren Sie dies als logische 1 für die Dauer der erwarteten Absprungperiode. Ebenso beim Übergang von 1 nach 0.
Offensichtlich würde dies immer noch die maximale Eingaberate begrenzen. Aber es würde auch die Latenz für einen einzelnen Tastendruck auf nahezu Null senken, selbst für extrem lange Entprellzeiten.
Gibt es Probleme mit diesem Ansatz? Es scheint ein offensichtlicher Ansatz für das Entprellen von Software zu sein, daher bin ich überrascht, dass es nicht verwendet zu werden scheint.