Hi damaltor,
danke für die Erklärung hab den Code auch noch ein wenig verfeinert, was die Msleep zeiten angeht das ganze sieht jetzt so aus.
mfgCode:#include "asuro.h" #define WAIT1 200 #define WAIT2 400 #define SPEED 100 #define SPEED2 120 int main(void) { unsigned char a,b; Init(); while(1) { a=PollSwitch(); b=PollSwitch(); if ((a==b)&&(b==1)) { StatusLED (RED); BackLED(OFF,ON); FrontLED(ON); MotorDir(RWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT1); FrontLED(OFF); BackLED(OFF,OFF); StatusLED(YELLOW); MotorDir(RWD,FWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT2); } else if ((a==b)&&(b==2)) { StatusLED (RED); BackLED(OFF,ON); FrontLED(ON); MotorDir(RWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT1); FrontLED(OFF); BackLED(OFF,OFF); StatusLED(YELLOW); MotorDir(RWD,FWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT2); } else if ((a==b)&&(b==4)) { StatusLED (RED); BackLED(OFF,ON); FrontLED(ON); MotorDir(RWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT1); FrontLED(OFF); BackLED(OFF,OFF); StatusLED(YELLOW); MotorDir(RWD,FWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT2); } else if ((a==b)&&(b==8)) { StatusLED (RED); BackLED(ON,OFF); FrontLED(ON); MotorDir(RWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT1); FrontLED(OFF); BackLED(OFF,OFF); StatusLED(YELLOW); MotorDir(FWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT2); } else if ((a==b)&&(b==16)) { StatusLED (RED); BackLED(ON,OFF); FrontLED(ON); MotorDir(RWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT1); FrontLED(OFF); BackLED(OFF,OFF); StatusLED(YELLOW); MotorDir(FWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT2); } else if ((a==b)&&(b>=25)) { StatusLED (RED); BackLED(ON,OFF); FrontLED(ON); MotorDir(RWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT1); FrontLED(OFF); BackLED(OFF,OFF); StatusLED(YELLOW); MotorDir(FWD,RWD); MotorSpeed(SPEED,SPEED); Msleep(WAIT2); } else { BackLED(OFF,OFF); FrontLED(OFF); StatusLED (GREEN); MotorDir(FWD,FWD); MotorSpeed(SPEED2,SPEED2); } } }
Erik







Zitieren

Lesezeichen