hallo janse,
ich würde auch probieren, die anzahl der schwarz-weis-übergänge auf jeder seite zu zählen und dann die anzahl zu vergleichen.
such mal hier im forum, da hatten bestimmt schon viele vor dier des problem.
gruß josua
Stimmt. Ist auch nicht krittisch. Ich vermutte es wird keine speicherplatz verlieren oder (stack)uberlauf verursachen. Mir ist gelernt das variabelen, vielleich sogar constanten, nur zwisschen die {} klammern gultig sind. Weil die while-schleife damit endet, wird meines wissen diesen speicherplatz dort wieder frei gegeben. Aber bei den nächste durchlauf von while wieder de selbe platz auf neu benutzt. Wie gesagt, kein problem, nur nicht nett. Und habe versucht janse auf diese variabelen gültigkeit aufmerksam zu machen. Die {} klammern stehen in einem program nicht nur fur die lehsbarkeit.Zitat von radbruch
Ich weiss nicht von jeder andere art von roboter aber ist auch meiner meinung. Aber nur wen man ein bisschen elektronik wissen hat, oder es bekommen wil und gedült dafur hat.Meiner Meinung nach ist deshalb der asuro immer noch der beste Einsteigerroboter.
hallo janse,
ich würde auch probieren, die anzahl der schwarz-weis-übergänge auf jeder seite zu zählen und dann die anzahl zu vergleichen.
such mal hier im forum, da hatten bestimmt schon viele vor dier des problem.
gruß josua
Hallo Janse,
wie die Vorgänger schon geschrieben haben, muss man die Odometriesensoren anders abfragen. Das funktioniert ungefähr so
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;
Die Schwellenwerte (550, 650) musst du eventuell anpassen auf deinen Asuro.
Abgesehen davon ist aber ein zweiter Schnitzer in deinem Programm.
Nämlich der
:
}
while(1);
return 0;
}
Diese while(1); Schleife wird nie mehr verlassen, d.h. das Programm läuft genau einmal durch und rennt dann für immer in dieser Schleife. Also weg damit.
Viel Spass beim programmieren
Skroete
Hallo Janse,
ich sehe gerade, daß das Programm ja nie an die zweite while(1); Schleife ran kommt.
Also letzten Teil der Antwort bitte ignorieren.
Gruß
Skroete
danke für die vielen antworten. aber wie bekomme ich die daten der odometrie daten heraus gibt es dazu ein Programm?
Hallo
Ich verwende meist diese Funktion um Werte auszugeben:
Das war zwar ursprünglich für PollSwitch() gedacht, kann so aber auch 16bit-Werte anzeigen. Aufruf der Funktion mit PrintChar(data[0]);Code:// aus: https://www.roboternetz.de/phpBB2/ze...=328394#328394 void PrintChar(unsigned int x) { char ergebnis[5] = {'0','0','0','0','0'}; while (x >=10000) { ergebnis[0]++; x -=10000; } while (x >= 1000) { ergebnis[1]++; x -= 1000; } while (x >= 100) { ergebnis[2]++; x -= 100; } while (x >= 10) { ergebnis[3]++; x -= 10; } ergebnis[4] +=x; SerWrite(ergebnis,5); }
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
ok vielen dank aber was muss ich jetzt dafür ändern?
Hallo, Janse und bisse weiter?
Wieder ein Thread wo es sich im Sande verläuft.
Michael
Lesezeichen