Hallo

Nette Idee. Dir ist aber schon klar dass du mit OdometrieData() keine Ticks zählst sondern die Helligkeitswerte der Odosensoren:
Code:
   for ( int i= 0; odomSumme < 20000;i++) 
   { 
      MotorDir(RWD,RWD); 
      OCR1A = 230; // Setze Motor Speed auf 230 von 255 
      OCR1B = 150; // Setze Motor Speed auf 150 von 255 
      OdometrieData(odom); 
      odomSumme += odom[1]/100; 
   }
Was soll der Mix aus Libraryfunktionen und direktem Zugriff auf die Hardware? Es erschwert die Lesbarkeit enorm. Um die Ursachen der Abstürze einzugrenzen würde ich erstmal nur die erprobten Funktionen verwenden. Zu häufiges Laden der OCR1X-Register kann auch zu Problemen führen und sollte vermieden werden:

Code:
      MotorDir(RWD,RWD); 
      OCR1A = 230; // Setze Motor Speed auf 230 von 255 
      OCR1B = 150; // Setze Motor Speed auf 150 von 255 
   for ( int i= 0; odomSumme < 20000;i++) 
   { 
      OdometrieData(odom); 
      odomSumme += odom[1]/100; 
   }
Gruß

mic