Code:
int main(void)
{

  Init();
  
  char buffer [10];
  uint16_t distance=0;

  while (1)
  {     
     distance = 25000;
     itoa(distance, buffer, 10); //übersetze (int)ergebnis in ASCII
     SerPrint("\n\r Ergebnis: \n\r"); 
     SerPrint(buffer);              //übertragung des Ergebnisses über RS232
     _delay_ms(500);            //warte 500ms
  }
}
Hab ich gemacht. In der Konsole erscheint auch 25000, also hier dürfte der Fehler nicht liegen.
Ich stehe gerade so ziemlich aufm Schlauch
Ich bin mir ziemlich sicher das der Fehler irgendwie mit dem Timer zusammenhängt.
Ich befürchte ich komme mit der Bit schreibweiße noch ein wenig durcheinander.
Es macht bei mir keinen Unterschied ob ich Das CS11 Bit so schreibe:
TCCR1B = (1<<CS11); // starte timer Prescaler 8
oder so wie man es bei den Ausgängen macht:
TCCR1B |= (1<<CS11); // starte timer Prescaler 8

Mache ich vielleicht dort einen Fehler???

Vielleicht lösche ich das Bit ja auch falsch???
TCCR1B &= ~(1<<CS11); // Stoppe timer

Ich hoffe du kannst mir noch einmal helfen