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