Dankefür eure Ausführungen!

Zitat Zitat von Holomino Beitrag anzeigen
Geht das jetzt nur um Tastenabfragen an den Inputs?
Dann würde ich NICHT den PortChange-Interrupt verwenden, sondern einen Timer im ms-Bereich. Der alleine bewerkstelligt schon die Entprellung.
Wo siehst du den Vorteil gegenüber einem PortChange-Interrupt ?
Der Timer-I. würde alle ca.10ms aktiv werden, obwohl Sek, Min oder Std nichts passiert.

Zitat Zitat von Holomino Beitrag anzeigen
Code:
  uint8_t setPINA = chPINA & actPINA;    // get new set pins
  uint8_t clPINA = chPINA & ~actPINA;    // get new cleared pins

  prevPINA = actPINA; //save actual PINA in prevPINA for next ISR call
...warum dieser Aufwand?
In deinem chPINA stehen doch alle Pin-Änderungen. Danach müssten die entsprechenden Bits PA2-PA5 auf 1 ausgewertet werden. Habe ich hier irgend etwas übersehen?
Nach jeder chPINA-Auswertung kommt dann sofort eine erneute Aktualisierung+Speicherung in einer volatile-Variable.
Code:
prevPINA = PINA;