Kontaktstuds (debouncing)
Att filtrera bort de snabba av-och-på-pulser som en mekanisk knapp ger i millisekunderna efter att den tryckts in.
Metallkontakter studsar. Ett enda tryck på en knapp blir för en mikrokontroller som läser en GPIO-pinne miljontals gånger per sekund tio eller femtio växlingar under några millisekunder, och ett avbrott på flanken körs lika många gånger. Den som byggt sin första räknare med en knapp har sett den hoppa från 3 till 11.
Hårdvarulösningen är ett RC-filter följt av en Schmitt-trigger, som gör signalen långsam och ger den hysteres. I firmware är det vanligaste att sampla pinnen med jämna mellanrum, till exempel från ett SysTick-avbrott, och godta ett nytt läge först när det varit stabilt i några sampel i rad. Att bara vänta 20 ms efter första flanken fungerar också, men stjäl tid från allt annat. Jack Ganssles genomgång av hur olika brytare faktiskt beter sig är fortfarande standardreferensen.