Hi!
Er fährt schonmal, reagiert auch auf buttons u.s.w... aber er hält sich nicht an seine zeit... er hört also nicht auf zu fahren... versteh nicht ganz warum... hab auch entsprechende änderungen am code vorgenommen, jedoch ohne erfolg.
Teilweise fängt auch die Gelbe StatusLED zum blinken an. Kann jedoch nicht erkennen woran das liegt.
Hier noch einmal der Code
Hat jemand einen gut gemeinten rat für mich? ^^Code:#include "asuro.h" void erwarten(unsigned int male); //Rufe Wartemodus ab void collusion(unsigned int lang); //Rufe Collusion ab int main(void) { Init(); //Ab hier beginnt Rolf zu "Leben" //Morgenmassage senden SerPrint("\r\nMuah... muss ich aufstehen?\r\n"); //Rolf wartet erstmal ab erwarten(1); //Rolf startet Kollusionsfahrt collusion(10000); return 0; } //Funktionen //Rolf wartet auf etwas void erwarten(unsigned int male) { unsigned int i; for (i = 0; i <= male; i++) { Msleep(500); StatusLED(GREEN); Msleep(10); BackLED (OFF, ON); Msleep(500); StatusLED(OFF); Msleep(10); BackLED (ON, OFF); Msleep(500); BackLED (OFF, ON); Msleep(500); BackLED (ON, OFF); if (i == male) BackLED (OFF, OFF); //Schalte Alles ab wenn am ende } } //Rolf vorwaerts void FWARD(void) { FrontLED(ON); //Kuendige Anfahren an Msleep(300); FrontLED(OFF); Msleep(150); FrontLED(ON); Msleep(300); FrontLED(OFF); MotorDir(FWD,RWD); //Beide Motoren vorwaerts MotorSpeed(150,150); //Los gehts } //Rolf rueckwaerts void RWARD(void) { MotorDir(RWD,FWD); //Beide Motoren rueckwearts MotorSpeed(120,120); //Los gehts } //Rolf rueckwaerts links void RWDL(void) { MotorDir(RWD,FWD); //Beide Motoren rueckwearts MotorSpeed(120,0); //Los gehts } //Rolf rueckwaerts rechts void RWDR(void) { MotorDir(RWD,FWD); //Beide Motoren rueckwearts MotorSpeed(0,120); //Los gehts } //Rolf stoppen void STOP(void) { MotorSpeed(0,0); FrontLED(OFF); } //Rolf kollusionsprogramm void collusion(unsigned int lang) { unsigned long startzeit = Gettime(); unsigned char t1; unsigned char t2; unsigned long zeit; zeit = startzeit + lang; while ( startzeit < zeit ) //Fahre so lange wie zeit gegeben ist { t1 = PollSwitch(); t2 = PollSwitch(); if (t1 == 0 && t2 == 0 && startzeit < zeit) //Keine Taste gedrueckt, Rolf feahrt vorwaerts { FWARD(); //Auf gehts } else if (t1 && t2 && t1 == t2) { STOP(); //Stoppen if (t1 & 0x07 && startzeit < zeit) //Linke tasten beruehrt { RWDL(); //LinksRueckwaerts ausweichen } if (t1 & 0x38 && startzeit < zeit) //Rechte tasten beruehrt { RWDR(); //RechtsRueckwearts ausweichen } Msleep(1000); //Eine Sekunde rueckwarts fahren } else STOP(); } STOP(); }







Zitieren
Lesezeichen