Hallo, ich habe hier ein Programm mit dem AVR Studio geschrieben. Es macht aus das ,was ich will. Es fährt solange, bis er auf eine schwarze Stelle trifft, dann leuchtet kurz die Status LED rot, anschließend gelb und bleibt dort die ganze Zeit stehen. Nun möchte ich, dass der Asuro sich um 90° dreht,was aber nicht funktioniert, denn er dreht sich unendlich .
Was mache ich falsch? Könnt ihr mir helfen?Code:#include "asuro.h" int main(void) { unsigned int data[2]; //Speicher bereit stellen int zeit=0; Init(); FrontLED(ON); LineData(data); MotorDir(FWD,FWD); // Vorwärts fahren lassen, MotorSpeed(110,100); //mit dieser Geschwindigkeit while(1) { LineData(data); if(data[0]<50 || data[1]<50){StatusLED(RED);for(zeit=0;zeit<200;zeit++){Sleep(220);} } if(zeit==200){ StatusLED(YELLOW); MotorDir(BREAK,BREAK);MotorSpeed(0,0);for(zeit=0;zeit<200;zeit++){Sleep(120);} } Turn(90,120);Sleep(200); } return 0; }
Dann hätte ich noch eine Frage : warum funktioniert es nicht ,wenn ichaußerhalb der while(1){} Schleife schreibe ? Denn daran könnte es liegen, dass Turn nicht richtig funktioniert..Code:if(zeit==200){ StatusLED(YELLOW); MotorDir(BREAK,BREAK);MotorSpeed(0,0);for(zeit=0;zeit<200;zeit++){Sleep(120);} }
ThX schonmal für eure Hilfe![]()







Zitieren

Lesezeichen