Hallo,
Ich bin fange gerade erst mit der Programmierung des Asuros an. Ich versuche ein Programm für den Asuro zu schreiben, mit dem es möglich ist, 4 verschiedene Signale (für je 4 verschiedene Fahrtrichtungen) einer Fernbedienung zu speichern und auf diese später richtig zu reagieren. Leider funktionert dieses Programm noch nicht ganz. Kann mir vielleicht jemand helfen und mir sagen, was ich falsch gemacht habe?
Gruß MathbotCode:/* NAME: Fernbedinung.c Autor: Matthias Hüther Beschreibung: Programm zur Steuerung der Asuros mittels einer TV-Fernbedienung. Es werden 4 Signale für je 4 Fahrtrichtungen gespeichert. Anschließend soll der Asuro auf die 4 Signale entsprechend reagieren. */ #include "asuro.h" unsigned char right[20], left[20], fwd[20], back[20], signal[20]; int i, a; void pre(void){ for(i=0;i<=100;i++) Sleep(255); //vorbeireiten auf neues signal MotorDir(BREAK,BREAK); StatusLED(RED); } void checkok(void){ //bei erhalt des Signals blinken a = 3; while(a<=3){ StatusLED(GREEN); BackLED(ON,ON); FrontLED(ON); for(i=0;i<=40;i++) Sleep(255); BackLED(OFF,OFF); FrontLED(OFF); for(i=0;i<=40;i++) Sleep(255); a++; } } int main(void) { Init(); //lerne Signal für rechts MotorDir(FWD,RWD); MotorSpeed(250,250); pre(); SerRead(right,20,0); checkok(); //lerne Signal für links MotorDir(RWD,FWD); MotorSpeed(250,250); pre(); SerRead(left,20,0); checkok(); //lerne Signal für vor MotorDir(FWD,FWD); MotorSpeed(250,250); pre(); SerRead(fwd,20,0); checkok(); //lerne Signal für back MotorDir(RWD,RWD); MotorSpeed(250,250); pre(); SerRead(back,20,0); checkok(); while(1){ //fahre auf signal pre(); SerRead(signal,20,0); if(signal==right){ StatusLED(GREEN); MotorDir(FWD,RWD); MotorSpeed(250,250); for(i=0;i<=100;i++) Sleep(255); } if(signal==left){ StatusLED(GREEN); MotorDir(RWD,FWD); MotorSpeed(250,250); for(i=0;i<=100;i++) Sleep(255); } if(signal==fwd){ StatusLED(GREEN); MotorDir(FWD,FWD); MotorSpeed(250,250); } if(signal==left){ StatusLED(GREEN); MotorDir(RWD,RWD); MotorSpeed(250,250); } } return 0; }







Zitieren

Lesezeichen