Also das kann ich nicht nachvollziehen...Wenn ich die Interruptfunktion verwende, heißt das, mein (Haupt-)Programm läuft erst weiter, wenn ich die Taste wieder los lasse.
normalerweise sollte z.B. bei der steigenden Flanke die ISR betreten werden, und wenn sie abgearbeitet ist geht es sofort im Hauptprogramm weiter.
Bei einer ganzen Matrix würde ich es aber ohnehin anders machen, nämlich ähnlich wie dein zweiter Vorschlag:
- Timer ISR erzeugt einen Takt von z.B. 1ms
- Tastatur wird im Hauptprogramm gepollt
- Wenn Tastendruck erkannt wurde: warte n Timer Intervalle ab und schau nach ob die Taste immernoch gedrückt ist (entprellen)
Lesezeichen