Hallo Besserwessi.

Danke erstmal für deine Antwort. Du hast recht, es muss wohl volatile unsigned int heißen. Mein compiler hat keinen Fehler, Warnung herausgebracht. Komisch. sei() und cli() habe ich aus den ISR entfernt
Das Problem ist aber noch nicht behoben.

Eine kleine Ergänzung:

Habe herausgefunden, dass der Variablewert ein einziges Mal vom Hauptprogramm übernommen wird nachdem oder während die ISR abgearbeitet wird. Danach wird der Variablewert wieder auf den Ursprungszustand (hier: 4000) gesetzt. Warum ist das so und wie bekomme ich es hin, dass der in der ISR berechnete Variablewert dauerhaft vom Hauptprogramm übernommen bleibt?

Danke für Eure Hilfe
hardy78