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