Kein Problem. Ich freu mich bei so reger Beteiligung über jede Antwort!

long int ist nur eine Erweiterung von int auf 32bit. es gibt auch unsigned long int mit einem größeren Werte Bereich.

Ich habe gerade meinen Fehler gefunden:

Ich wollte eigentlich alles so effizient wie möglich programmieren und habe deswegen die gemessenen ADC Werte als uint16_t abgespeichert. Bei der weiteren Berechnung habe ich zwar immer long ints, also Vorzeichenbehaftete Zahlen verwendet, aber das uint16_t hat die leider immernoch als unsigned gecastet.
Eine Definition aller uint16_t als long ints hat gereicht.