Verstehe, das Prinzip ist ok, aber zu viel Speicherplatz verschwendet wenn zB. 10 Eingänge ins Spiel kommen. Hier ist mir (als Anfänger) die transparenz und einfacherere Lesbarkeit wichtig!
Ich hatte nur bedenken wegen der Übersicht bei mehreren volatile-Variablen. Sehe hier aber keinen Ausweg.

- - - Aktualisiert - - -

Ist es eigentlich normal, dass bei Timer-ISR mehrere volatile-Variable eingesetzt werden?
Folgend schon wieder eine, nur um einen Intervall-Zähler zu erhalten;
Code:
volatile uint8_t EingIntervall=0;									
																			
ISR(TIM1_COMPA_vect)
{
	OverflowZaehler++;
	EingIntervall++;

	if(OverflowZaehler >= 60000)		// 1ms*60 000 = 1Min
	{
		OverflowZaehlerReset();
	}

	if (EingIntervall==10)			// alle 10[ms] werden die Eingangskontakte abgefragt
	{
		RegA_KontaktAbfrage();  // Eingänge auf Veränderung analysiert
		EingIntervall=0;
	}
}