Hallo
Ich hab meinen Asuro ROLF genannt ^^
Ich bin momentan dabei, ihn etwas leben einzuhauchen indem ich erm selbständig irgenetwas machen lasse, aber da das ganze noch in seinem anfangsstadium ist... und ich erst seit kurzem in C programmiere... ist mein Quellcode auch dementsprechend schlecht ^^
Ich möchte alles in funktionen aufteilen, die ich abrufen kann wann mir gerade lustig ist. Ich möchte auch später einen zufallsgenerator einbaun, der diese funktionen zu unterschiedlichen zeiten und zu unterschiedlichen längen ausführt. Um etwas Leben einzubringen ^^
Somit habe ich angefangen eine funktion zu schreiben die es Rolf erlaubt eine gewisse zeit auf Kollisionskurs zu gehen... nur scheinbar gibt es probleme mit der forschleife die kontrolliert, ob rolf noch rumspielen darf...
Der Wartemode (led rumblinken lassen) funktioniert noch![]()
Vielleicht kann ich auch keine funktionen in funktionen einbinden, wie gesagt, kenn mich in C überhaupt nicht aus ^^
Hier ersteinmal der Code:
Würde mich für Ratschläge wirklich freuen... da ich glaube auf keinen gescheiten Pfad zu kommen ^^Code:#include "asuro.h" void erwarten(unsigned char 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 char 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); } //Rolf kollusionsprogramm void collusion(unsigned int lang) { unsigned char t1, t2; unsigned long zeit; t1 = PollSwitch(); t2 = PollSwitch(); for (zeit = Gettime(); zeit > zeit + lang;) { if (t1 == 0 && t2 == 0) //Keine Taste gedrueckt, Rolf feahrt vorwaerts { FWARD(); //Auf gehts } else if (t1 && t2 && t1 == t2) { STOP(); //Stoppen if (t1 & 0x07) //Linke tasten beruehrt { RWDL(); //LinksRueckwaerts ausweichen } if (t1 & 0x38) //Rechte tasten beruehrt { RWDR(); //RechtsRueckwearts ausweichen } Msleep(1000); //Eine Sekunde rueckwarts fahren } } }
Mit freundlichen Güßen
Hardy







Zitieren

Lesezeichen