sieht nicht schlecht aus, habe nur die überflüssigen klammern in der if-abfrage weggemacht.
es heisst
if(bedingung){aktion}else{aktion}
und nicht
if(bedingung){{aktion}else{aktion}}
es gibt nur ein problem: die funktion sleep(255) wartet etwa 3 milliseknunden, aber der asuro wird länger brauchen um sich um 180 grad zu drehen.
probiers mal damit:
zuerst definierst du noch einen int i am anfang des programms.
dann machst du folgendes an der stelle, wo er sich drehen soll:
for(i=0;i<333;i++){
sleep(255);
}
dann wartet er 333*3ms=ca eine sekunde, bevor er anhält. ob er es in dieser zeit schafft, weiss ich nicht, aber du musst dann mit dem wert für i (der 333) experimentieren biss es hinhaut.
hier der neue code:
Code:#include "asuro.h" int main(void) { unsigned char ktaster; Init(); StatusLED(GREEN) MotorDir(FWD;FWD); MotorSpeed(200,200); while(1){ if(switched==1){ StatusLED(RED); MotorDir(FWD,RWD); MotorSpeed(100,100); Sleep(255); MotorDir(BREAK,BREAK);} else{ StatusLED(GREEN);} switched=0 } return 0; }
Lesezeichen