-
-
Neuer Benutzer
Öfters hier
Vielleicht kann jemand von euch mir ja nochmal weilterhelfen...
Ich versuche gerade ein Programm zu schreiben, welches Feststellen kann ob sich ein rad nicht mehr dreht (asuro hängt am teppich fest o.ä.)
Ich habe bis jetzt schon folgendes Fertig:
#include "asuro.h"
int main(void)
{
unsigned int Rmin = 1024, Rmax = 0, Lmin = 1024, Lmax = 0, Rmitte = 512, Lmitte = 512, data[2];
unsigned int wegr=0, wegl=0;
unsigned char flagl=FALSE, flagr=FALSE;
Init();
MotorDir(FWD,FWD);
MotorSpeed(100,125);
while(1) {
OdometrieData(data); // 0. links, 1. rechts
// max links
if (data[0] > Lmax)
Lmax += (data[0] - Lmax) / 2;
// min links
if (data[0] < Lmin)
Lmin -= (Lmin - data[0]) / 2;
// max rechts
if (data[1] > Rmax)
Rmax += (data[1] - Rmax) / 2;
// min rechts
if (data[1] < Rmin)
Rmin -= (Rmin - data[1]) / 2;
Rmitte=(Rmax+Rmin)/2;
Lmitte=(Lmin+Lmax)/2;
if ((data[0] < Lmitte) && (flagl == TRUE)) {
flagl = FALSE;
wegl++;
}
if ((data[0] > Lmitte) && (flagl == FALSE)) {
flagl = TRUE;
wegl++;
}
if ((data[1] < Rmitte) && (flagr == TRUE)) {
flagr = FALSE;
wegr++;
}
if ((data[1] > Rmitte) && (flagr == FALSE)) {
flagr = TRUE;
wegr++;
}
unsigned int test[2];
wegr = test[1];
if (wegr == wegaltr)
{
StatusLED(RED);
serwrite(wegr,20);
serwrite(wegaltr,20);
}
}
return 0;
}
Mein Problem ist jetzt, wie schaffe ich es den Alten wert zu speichern also was z.b das rechte rad von der z.b. 2. messung hatte.
Wäre nett wenn mir jemand helfen könnte
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen