also mit dem (int16_t)adc0 wurden schonmal die ersten negativen Zahlen gesichtet aber ich bewege mich noch im Wertebereich von -50 bis 50 anstatt -1000 bis 1000 ich spiel mal noch etwas mit den Klammern...

besten Dank Axel

EDIT: Habe es jetzt schon auf
KMZ0 = (((int16_t)adc0 - 405)*1000)/690;
reduziert, aber ich erhalte immer noch falsche werte