Mein Code ist mit anfänger c++ Kenntnissen geschrieben ghet sicher noch um einiges leichter.....
Code:
#include "asuro.h"
int main (void)
{
unsigned char i,s,sc,temp;
int templinks, temprechts, summelinks, summerechts, x, y, a, b, wechselrechts, wechsellinks;
//int n1l, n1r, nr, nl;
int data[2];
Init();
MotorDir(FWD,FWD);
s=200;
temp=s/3;
sc=temp*2;
MotorSpeed(s,s);
wechsellinks=0;
wechselrechts=0;
while(1)
{
for(i=0;i<1000;i++)
{
Sleep(72);
templinks=summelinks;
summelinks=wechsellinks+templinks;
temprechts=summerechts;
summerechts=wechselrechts+temprechts;
x=data[0];
y=data[1];
OdometrieData(data);
SerWrite(data[0],3);
SerWrite(data[1],3);
a=data[0];
b=data[1];
if(x>a) {wechsellinks=1;}
else {wechsellinks=0;}
if(y>b) {wechselrechts=1;}
else {wechselrechts=0;}
}
if(summelinks>summerechts) {MotorSpeed(sc,s);}
else {MotorSpeed(s,sc);}
}
}
kurze Erklärung:
Programm sollte die einzelnen Werte vor und nach der Aktualisierung in der for schleife vergleichen und dann das ergebnis für links und rechts in eine Summe zusammenfassen diese summen werden dann verglichen.
Lesezeichen