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;
}