Meine fehlerhafte Verwendung von itoa für long int Variablen war die Ursache für mein Problem:

unsigned volatile long test1 = 0;
unsigned volatile long test2 = 0;

test2 = test1 / 10;

-> dann wird die Ausgabe (LCD) negativ, wenn test1 größer als ca 32000 wird.
Trotzdem wird richtig gerechnet, denn die Ausgabe von test2 bleibt positiv.

Das heißt, der Überlauf findet erst statt, wenn itoa die Variable 'bearbeitet'

Danke für die Hilfe!!

Ali_Baba