Hallo liebe ASURO-Fangemeinde,
ich bin noch Neuling in Sachen C-Programmierung und versuche seit heute Mittag um 2 ein Programm zu schreiben, welches Signale vom Infrarottranceiver aufnimmt, die ich per Terminalprogramm(HTerm) vom PC aus losschicke, in ein array abspeichert und - je nachdem was dann da drin steht - darauf reagiert.
mein Problem ist leider, dass bei mir das array irgendwie nicht richtig ausgelesen wird.
mein Befehl sieht beispielsweise im dualen folgendermaßen aus:
1010 0000 0010 0000
also dezimal eine 40992
wenn dieser beim ASURO ankommt, soll er vorwärts fahren.
bis jetzt sieht der Code folgendermaßen aus:
Code:#include "asuro.h" //habe noch die stadard asuro.h von AREXX void longsleep(unsigned int dauer) //Funktion die etwas länger, als ein einfacher "Sleep" Befehl wartet { unsigned int i; for(i=0;i<dauer;i++) { Sleep(216); } return; } int main(void) { unsigned int command[1]; //Setzen des Arrays "command" Init(); while(1) { StatusLED(YELLOW); SerWrite("\n\r Warte auf Kommando.\n\r",24); MotorDir(BREAK,BREAK); MotorSpeed(0,0); SerRead(command,2,0); //Warten auf einen 2 Bytes, also 16 Bit langen Befehl longsleep(50); if(command[0]==40992) //wenn ASURO 40992 empfängt vorwärts fahren { StatusLED(GREEN); MotorDir(FWD,FWD); MotorSpeed(180,180); longsleep(200); break; } else //ansonsten von vorne anfangen { break; } } return 0; }
sieht jemand irgendwo einen potentiellen Fehler?
ein kleiner Tip wäre echt klasse
Gruß
Chris







Zitieren

Lesezeichen