Switch debouncing
Het wegfilteren van de snelle aan-uitpulsen die een mechanische schakelaar produceert in de milliseconden nadat hij is ingedrukt.
Metalen contacten denderen. Voor een microcontroller die een GPIO-pin miljoenen keren per seconde uitleest, lijkt één druk op de knop op tien tot vijftig overgangen binnen enkele milliseconden, en een flankgetriggerde interrupt gaat net zo vaak af. Wie ooit zijn eerste drukknoptelller bouwde, heeft hem van 3 naar 11 zien springen.
De hardwareoplossing is een RC-filter dat een Schmitt-trigger voedt, wat het signaal vertraagt en hysterese toevoegt. In firmware wordt meestal de pin met vaste frequentie bemonsterd, bijvoorbeeld vanuit een SysTick-interrupt, en pas een nieuwe toestand geaccepteerd als die meerdere samples achter elkaar stabiel bleef. Gewoon 20 ms wachten na de eerste flank werkt ook, maar kost tijd die elders nodig is. Het artikel van Jack Ganssle over hoe echte schakelaars zich gedragen blijft het standaardreferentiewerk.