Das Entprellen löse ich anders:
in einem 10ms Timer-Interrupt frage ich alle Tastereingänge ab; für jeden Taster, der betätigt ist, incrementiere ich einen Zähler, bei den nicht-betätigten Tastern setze ich den Zähler auf 0.
Jeder Zähler wird überprüft, ob er z.B. bei 5 (=50ms) angekommen ist; dann wird ein Bit / Flag gesetzt, das den zugehörigen Taster als EIN signalisiert. Ist ein Zähler auf 0, wird dieses Bit / Flag natürlich gelöscht.
Somit muß ein Taster 5 * 10ms = 50ms ununterbrochen betätigt sein, damit er als EIN 'anerkannt' wird. Gibt es wegen des Prellens eine Unterbrechung, beginnt der Zähler wieder von vorne.
Durch dieses Bit / Flag kann ich in der Hauptroutine verzweigen und es nach Abarbeitung löschen oder auch nicht.