danke Hans, ich werd mir das Proggi anschauen
Da kann ich nur AVR-Studio empfehlen. Mit dem darin befindlichen Debugger kann man seine Proggies Schritt für Schritt simulieren lassen und kommt so manchem Fehler auf die Spur.
Man kann sich wunderbar die Variablen anschauen. Funktionen wie Serwrite etc. sollte man allerdings auskommentieren sonst wartet man bis zum Frühstück.
Hans
danke Hans, ich werd mir das Proggi anschauen
Servus!
Bei mir lief die Odometrie bisher nicht....über dieses testproggi hab ich nun gesehen das KEINE Werte angezeigt bzw. geliefert werden (bei beiden encodern - es werden nur Nullen angezeigt). Die LED's leuchten (mit handykamera getestet) . die durchgänge hab ich auch schon gemessen --- geht alles.
Habe die asuro lib6.2 benutzt....
was könte ich nun testen?
gruß
versuch dich mal an den funktionen EncoderInit(),EncoderSet(),und den variablen encoder[x]... vielleicht gehts damit
Servus!
verdammte Tat.....nach ein paar Stunden hab ich dann meinen Fehler gefunden.....die SCH*** Odometer LED's und Odometer Transistoren waren nur geringfügig nicht richtig ausgerichtet........
noch ne kurze allgemeine Frage:
das programm von waste für den geradeauslauf:
while(1){
OdometrieData(data);
if ((data[0] < 550) && (flagl == TRUE)) {flagl = FALSE; wegl++;}
if ((data[0] > 650) && (flagl == FALSE)) {flagl = TRUE; wegl++;}
if ((data[1] < 550) && (flagr == TRUE)) {flagr = FALSE; wegr++;}
if ((data[1] > 650) && (flagr == FALSE)) {flagr = TRUE; wegr++;}
diff=wegr-wegl;
if (diff>0) speedRight--;
else if (diff<0) speedLeft--;
else {speedRight=speed; speedLeft=speed;}
if (speedRight<0) {speedRight=0;}
if (speedLeft<0) {speedLeft=0;}
MotorSpeed(speedLeft,speedRight);
}
hier wird doch das wegl und wegr immer weiter hochgezählt-oder?
die 650 und 550 sind das Schwellwerte nur für den speed von 150 (habe es eben nicht hinbekommen data[] am rechner anzuzeigen....
gruß
das stimmt, die werden immer weiter hochgezählt. bis der integer überläuft, und die werte bei ca -16000 wieder anfangen =)
deshalb is da ja ne wegbegrenzung eingebaut
und wie kommen die 550 und 650 zustande?
gruß
das ist eine einfache prüfung.
wenn der sensor ein schwarzes feld "sieht", dann wird ein niedriger wert ausgegeben (theoretisch 0, dieser wert wird alerdings selten mal erreicht) und wenn er ein weisses feld sieht, dann wird ein hoher wert ausgegeben (maximal 1023, aber auch dieser wert ist selten).
so kann man also davon ausgehen, dass ein wert unter 550 wahrscheinlich weiss ist, und ein wert über 650 wahrscheinlich schwarz.
Das erklärt einiges
Dankeschön!
PS: Wenn mann es genauer eingerenzen MÜSSTE könte man ja vorher wieder nen umgebungshelligkeitsabgleich machen wie bei der Linienverfolgung.....denke ich!
Lesezeichen