Hallo Robotikfreunde!

Endlich hab ich es auch mal geschafft meinen ASURO zusammenzulöten.
Es klappt auch alles so weit - außer meinem Programm...
Weil meine Kumpels, mit denen ich normalerweise baue, im moment Skifahren sind, dachte ich mir, ich poste einfach mal hier rein und wende mich mit meinen Problemen an Euch !

Ich habe ein Odometrieprogramm geschrieben und dachte es würde auch gut laufen, tut es aber nicht. Asuro hat immer noch einen rechtsdrall und die Drehzahlen der Räder beeinflussen sich trotz Programm nicht!

Hier einfach mal der Code:

Code:
/* Geradeausfahren */

void GeradeAus()
{
   unsigned int i=0;
   unsigned int OdoDataInit[2];
   unsigned int OdoData[2];
   unsigned int n0=0;
   unsigned int n1=0;
   OdometrieData(OdoDataInit);
   float comp;
   unsigned int old0=OdoDataInit[0];
   unsigned int old1=OdoDataInit[1];
   unsigned int spd0=175;
   unsigned int spd1=175;
   OdometrieData(OdoData);

   MotorDir(FWD,FWD);
   MotorSpeed(spd0,spd1);

   for(i=0; i<=50; i++)  // 50 mal Messen für exakteren Wert
   {
      /* Berechnung der Drehzahl des 0. Odosensors */

      if(old0==0){old0=1;} // sonst teilt man nacher durch 0 wenns dunkel ist!

      if(OdoData[0]/old0 > 2 || OdoData[0]/old0 < 0.5) // Wenn Übergang n erhöht
      {
         n0++;
      }

      old0=OdoData[0];

      /* Berechnung der Drehzahl des 1. Odosensors */

      if(old1==0){old1=1;} // sonst teilt man nacher durch 0 wenns dunkel ist!

      if(OdoData[1]/old1 > 2 || OdoData[1]/old1 < 0.5)
      {
         n1++;
      }

      old1=OdoData[1];
   }

   /* Drehzahlen ins Verhältnis setzen und dann Geschw. ev. Erhöhen */

   comp=n0/n1;

   if(comp > 1)
   {
      if(spd0<255)
      {
         spd0++;
      }
      else
      {
         spd1--;
      }
   }
   else if(comp < 1)
   {
      if(spd1<255)
      {
         spd1++;
      }
      else
      {
         spd0--;
      }
   }
}
Ich hoffe ist nicht zuuu laufzeitlastig Ist mein erstes Programm!

Vielen Dank im Vorraus[/code]