Funktion erstellen

ist sicher eine Kleinigkeit für einen erfahrenen Arduinonutzer.

Is klar....
Keine Fragen ...
Alles klar...

Nachdem ich ja schon stundenlang Bücher über C programmieren ...

Da steckt schon mal ein Irrtum!
Arduino ist C++, nicht C.
Und ja, das macht einen Unterschied.


Deine ISRs nutzen Funktionen/Methoden, welche ihrerseits ISRs benötigen/nutzen.
Das geht ins Auge, da Interrupts in ISRs grundsätzlich erst mal gesperrt sind.

Zusätzliche Stichworte: volatile und atomic


Zu deinem Array "WertTaste"
Ich sehe keinen Schutz, welcher das Schreiben über das Arrayende hinweg, verhindern würde.
Auch erwartet atoi() einen C- String, mit einem Null Byte als Begrenzer.