Hi Leutz,
haben wohl viele Leute, wie auch ich, die Idee von nem ASURO der rumfährt und bei Bedarf zurücksetzt und in einer anderen Richtung weiter fährt.
Habs mal probiert und das ist raus gekommen:
Code:
/* fahren(Kai) */
/* langsam fahren, irgendwo anstoßen, schnell zurücksetzen, 90°drehen, weiterfahren */
/* 02.08.2005 vom Kai */
#include "asuro.h"
int main(void){
int i;
Init();
while(1){
if(PollSwitch()>0){ /* falls taster gedrückt --> */
StatusLED(RED);
BackLED(ON,ON);
MotorDir(RWD,RWD); /* fahre rückwärts -->*/
MotorSpeed(200,200);
for(i=0;i<=270;i++){ /* --> für diese wilkürliche zeitspanne */
Sleep(255);
if(i==270){ /* ist die zeit abgegelaufen--> */
StatusLED(YELLOW);
MotorDir(RWD,FWD); /* --> dreh linksherum --> */
MotorSpeed(152,150);
for(i=0;i<=120;i++){ /* --> für diese wilkürliche zeitspanne */
Sleep(255);
}
}
}
}
else{ /* falls kein taster gedrückt --> */
StatusLED(GREEN);
BackLED(OFF,OFF);
MotorDir(FWD,FWD); /* fahre vorwärts */
MotorSpeed(150,150);
}
}
return 0;
}
und weil mir das noch nicht gereicht hat, hab ich mal versucht das noch ein bißchen schöner zu machen:
Code:
/* fahrenfeiner2 */
#include "asuro.h"
int main(void){
int j,i;
Init();
while(1){
if(PollSwitch() > 0 && PollSwitch() < 8){
StatusLED(RED);
BackLED(ON,ON);
MotorDir(RWD,RWD);
MotorSpeed(200,202);
for(i=0;i<=270;i++){
Sleep(255);
if(i==270){
StatusLED(YELLOW);
BackLED(ON,OFF);
MotorDir(RWD,FWD);
MotorSpeed(150,150);
for(j=0;j<=120;j++){
Sleep(255);
}
}
}
}
else if(PollSwitch() > 7 && PollSwitch() < 60 && PollSwitch() != 12 && PollSwitch() != 18 && PollSwitch() != 30){
StatusLED(RED);
BackLED(ON,ON);
MotorDir(RWD,RWD);
MotorSpeed(200,202);
for(i=0;i<=270;i++){
Sleep(255);
if(i==270){
StatusLED(YELLOW);
BackLED(OFF,ON);
MotorDir(FWD,RWD);
MotorSpeed(150,150);
for(j=0;j<=120;j++){
Sleep(255);
}
}
}
}
else if(PollSwitch() == 12 || PollSwitch() == 18 || PollSwitch() == 30){
StatusLED(RED);
BackLED(ON,ON);
MotorDir(RWD,RWD);
MotorSpeed(200,200);
for(i=0;i<=270;i++){
Sleep(255);
if(i==270){
StatusLED(YELLOW);
BackLED(ON,ON);
MotorDir(RWD,FWD);
MotorSpeed(152,150);
for(j=0;j<=200;j++){
Sleep(255);
}
}
}
}
else{
StatusLED(GREEN);
BackLED(OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(150,150);
}
}
return 0;
}
Sorry habs leider noch nicht geschafft mir die anderen Beiträge anzuschauen. Sind bestimmt ganz ähnliche Sachen dabei.
Und habs auch noch nicht geschafft die Dokumentation zu schreiben; aber ist ja eigentlich auch ganz einfach das Programm.
Jetzt will ich fahrenfeiner2 mit noch nen paar Funktionen und vielleicht auch mit einer anderen Struktur verfeinern.
@freq.9: fahren und fahrenfeiner funktionieren ziemlich gut auf meinem ASURO
@Banzai: Das klingt echt gut was du da gemacht hast werd ich direkt mal ausprobieren
@Moebius: Deine Idee mit der Befreiungsschleife gefällt mir, werd ich auch mal probieren in fahrenfeiner2 einzubauen
Lesezeichen