Danke! Ich bleibe am Ball.
Habe auch hier mal eine Analyse meiner Radsensoren hochgeladen:
http://www.gerth-ac.de/Asuro_MinMax.pdf
Interessant ist eventuell dieser regelmäßige "Einschnitt" bei Right Odometer, aber damit beschäftige ich mich dann später.
Hier die aktuelle Version:
Code:
#include "asuro.h" // Konfigurationsdateien laden
/* Funktionen definieren */
void schlafen(unsigned int t)
{
unsigned int i;
for(i=0; i<t; i++)
{
Sleep(72);
}
}
/* Geradeausfahren */
void GeradeAus()
{
static unsigned int i=0;
unsigned int OdoDataInit[2];
unsigned int OdoData[2];
static unsigned int n0=0;
static unsigned int n1=0;
OdometrieData(OdoDataInit);
unsigned int old0;
unsigned int old1;
static unsigned int spd0=200;
static unsigned int spd1=200;
for(i=0; i<50; i++) // 50 mal Messen für exakteren Wert
{
OdometrieData(OdoData);
/* Berechnung der Drehzahl des 0. Odosensors */
if(OdoData[0]/old0 > 1.4 || OdoData[0]/old0 < 0.7) // Wenn Übergang n erhöht
{
n0++;
}
old0=OdoData[0];
/* Berechnung der Drehzahl des 1. Odosensors */
if(OdoData[1]/old1 > 1.4 || OdoData[1]/old1 < 0.7)
{
n1++;
}
old1=OdoData[1];
}
StatusLED(GREEN);
/* Drehzahlen ins Verhältnis setzen und dann Geschw. ev. Erhöhen */
if(n0<n1)
{
if(spd0<255)
{
spd0++;
}
else
{
spd1--;
}
}
else if(n0>n1)
{
if(spd1<255)
{
spd1++;
}
else
{
spd0--;
}
}
MotorDir(FWD,FWD);
MotorSpeed(spd0,spd1);
}
/* Beginn des Hauptprogramms */
int main (void){
Init(); //Prozessor initialisieren
while(1) // Endlosschleife
{
GeradeAus();
}
/* Schluss ! */
return 0;
}
Räder und Odometrie sind definitiv in Ordnung 
Möchte hier generell nochmal anmerken dass ich es echt klasse findet dass ihr hier Anfängern wie mir so unter die Arme greift
Wenn ich wa mehr draufhab werd ich mich auch bemühen 
// Edit!
Jetzt habe ich auch deine Editierung gesehen. Werde ich heute noch angehen
Lesezeichen