PistolPete schrieb:
> Meine Theorie: Im Tutorial steht zwar dass eine Hardwareentprellung
> überflüssig ist bei µC, jedoch sind meine Schalter und
> Spannungsversorgung nicht gerade in Premiumqualität ausgeführt, so dass
> es vielleicht doch die beste Lösung ist.
Die auf der Seite Entprellung aufgeführte "Komfortlösung nach Peter
Danegger" entprellt auch in solchen Fällen zuverlässig.
Man darf halt nicht immer die scheinbar einfachste Lösung benutzen.
Deine Zustandsmaschinenlösung funktioniert nur dann, wenn die
Zustandsmaschine nicht zu oft (zu schnell hintereinander) aufgerufen
wird.
Das Prinzip jeder Software-Entprellung besteht im Grunde darin, in
gewissen Zeitabständen nachzusehen, ob sich der Zustand stabilisiert
hat. Mach ich das zu schnell, dann prellt der Taster noch, während ich
hinsehe. So gesehen ist deine Zustandsmaschine, wenn man sie zu schnell
auswertet, eigentlich gar keine definierte Entprellung, sondern ein
Mechanismus, in dem du das Drücken/Loslassen in Flanken verwandelst. Das
das auch noch (manchmal) entprellt liegt einzig und alleine daran, dass
zwischen den Aufrufen der Funktion genügend Zeit vergehen muss, damit
sich das Prellen legt.
So gesehen, ist dieser Code eher in die Kategorie "wenn der Rest des
Programmes nur langsam genug ist, dann entprellt er auch
zufälligerweise" einzuordnen. Eine dezidierte und absichtlich gewollte
Entprellung findet da nicht statt.