hallo
kannst du das programm mal posten?
ich kenne den code aus mehr spaß mit asuro 1 nicht
Hallo
Ich habe folgende Probleme...
Das erste Problem ist, dass wenn ich das clean tool von der cd benutze auch die .hex datei gelöscht wird.
Das zweite Problem ist, dass obwohl ich das Linienfolgeprogramm aus Mehr spaß mit Asuro 1 1:1 abtippe ich es zwar compilieren kann, sich aber nichts tut wenn ich den asuro dann anschalte.
Gruß Chris
hallo
kannst du das programm mal posten?
ich kenne den code aus mehr spaß mit asuro 1 nicht
mfg hai1991
P.S.: wer großbuchstaben oder rechtschreibfehler findet darf sie behalten
Nach dem Abtippen und VOR dem Kompilieren muss man das Programm abspeichern! (bei NP2) Möglicherweise kompillierst du ein leeres Programm.sich aber nichts tut wenn ich den asuro dann anschalte.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo,
ich glaube, das ist es:
ich hoffe, ich hab mich nicht vertippt!!Code:#include "asuro.h" #define SPEED 0x8F int speedLeft, speedRight; unsigned int lineData[2]; int ADOffset; void LineLeft(void) { speedLeft += 1; if (speedLeft > 0xFE) speedRight = 0xFF; } void LineRight (void) { speedRight += 1; if (speedRight > 0xFE) speedRight = 0xFF; } int main (void) { int i; unsigned char j; Init(); FrontLED(ON); for(j = 0; j < 0xFF; j++){ LineData(lineData);} LineData(lineData); ADOffset = lineData[0] - lineData[1]; speedLeft = speedRight =SPEED; for(;;) { LineData(lineData); i = (lineData[0] - lineData[1]) - ADOffset; if ( i > 4) { StatusLED(GREEN); LineLeft(); } else if ( i < -4) { StatusLED(RED); LineRight(); } else { StatusLED(OFF); speedLeft = speedRight = SPEED; } MotorSpeed(speedLeft,speedRight); } return(0); }
auf meinem ASURO scheint es zu funktionieren!
mfg Chrissi
Der Computer macht immer das, was du ihm sagst, aber nicht immer das, was du willst...
Das Problem mit dem Compilieren hat sich erledigt nun habe ich aber folgendes problem:
Der Asuro fährt wenn er die Linie verliert von der linie weg, oder er fährt in kurven einfach gerade aus ich würde das gerne insofern ändern, dass der asuro dann wieder auf die linie zufährt wenn er sie wieder verloren hat und dass er vor allem eher zackig ziemlich schnell gegen steuert und nicht so weich und langsam.
gruß Chris
edit: ganz vergessen zu sagen dass ich die funktion LineData nicht versteh und deswegen auch nicht weiß wie ich das ändern soll.
bewirkt, dass die aktuellen Werten der beiden Fototansistoren des Linienfolgers in die Variable lineData geschrieben werden.Code:LineData(lineData);
Diese ist als
deklariert und das bedeutet, dass sie eigentlich aus zwei Speicherplätzen besteht: lineData[0] und lineData[1]. Somit steht nachCode:unsigned int lineData[2];
LineData(lineData); der Wert des linken Fototransistors in lineData[0] und der Wert des rechten in lineData[1].
In obigem Programm wird mit
zuerst der Unterschied der beiden Fototransistoren festgestellt und dann in der Endlosschleife mitCode:ADOffset = lineData[0] - lineData[1];
jeweils der tatsächliche Unterschied abzüglich des ursprünglichen Unterschieds festgestellt.Code:LineData(lineData); i = (lineData[0] - lineData[1]) - ADOffset;
Wenn dieser Unterschied größer als 4 ist, wird die Funktion LineLeft() ausgeführt, wenn er kleiner ist als -4 wird LineRight() ausgeführt und sonst fährt er einfach weiter geradeaus.
Ich hoffe, dass es jetzt einigermassen verständlich geworden ist, was LineData() macht.
Gruß
Günther
Hallo Günther
Danke für die Erklährung das hat auf jeden Fall geholfen
Leider bin ich nicht früher dazu gekommen hier nochmal rein zu schauen, da ich grade etwas im Schulstress bin.
Gruß
Christian
Lesezeichen