Argl, ich komme nicht weiter mit der Programmierung

Ich lasse den PICAXE weg und steuere den SD21 direkt vom CM02 aus an.
Das ganze mit C++. Beide Möglichkeiten (16Bit/8Bit) führen nicht zum Erfolg.

Hier der Code:

Message Handlers: (funktionieren - SRF08 läßt sich problemlos steuern)

Code:
void CBrain::SetupCommPort( LPCTSTR comport)
{
	DCB dcb;
	COMMTIMEOUTS ct;

	CloseHandle(hCom);
	hCom = CreateFile( comport, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
	GetCommState(hCom, &dcb);
	dcb.BaudRate = CBR_19200;
	dcb.fParity = FALSE;
	dcb.fOutxCtsFlow = FALSE;
	dcb.fOutxDsrFlow = FALSE;
	dcb.fDtrControl = DTR_CONTROL_DISABLE;
	dcb.fDsrSensitivity = FALSE;
	dcb.fOutX = FALSE;
	dcb.fInX = FALSE;
	dcb.fRtsControl = RTS_CONTROL_DISABLE;
	dcb.fAbortOnError = FALSE;
	dcb.ByteSize = 8;
	dcb.Parity = NOPARITY;
	dcb.StopBits = ONESTOPBIT;
	SetCommState(hCom, &dcb);
  
	GetCommTimeouts(hCom, &ct);
	ct.ReadIntervalTimeout = 500;
    ct.ReadTotalTimeoutMultiplier =500; 
    ct.ReadTotalTimeoutConstant = 500; 
	SetCommTimeouts(hCom, &ct);

	SetCommMask(hCom, EV_RXCHAR);
}

16Bit-Version:

Code:
#define I2C_CMD		0x55		// direct I2C control command
#define CM01_CMD	0x5a	     // CM01 command 
#define SD21		0xc2		 // SD21 adress
HANDLE hCom;
BYTE SerialBuf[200];

...

		BD.Servo = 0x00;                        //servo 1 (register 0)
		BD.Speed0 = 0x05;                      //speed 5
		BD.Leg0a = 0x08;                        //lowbyte
		BD.Leg0b = 0x07;                         //highbyte
		
		SerialBuf[0] = I2C_CMD;			//send I2C command
		SerialBuf[1] = SD21;			//adress of SD21 (0xc2)
		SerialBuf[2] = BD.Servo;             
		SerialBuf[4] = BD.Speed0;
		SerialBuf[3] = BD.Leg0a;
		SerialBuf[5] = BD.Leg0b;

		WriteFile(hCom, &SerialBuf, 6, &n, NULL);

8Bit-Version:

Code:
#define I2C_CMD		0x55		// direct I2C control command
#define CM01_CMD	0x5a	     // CM01 command 
#define SD21		0xc2		 // SD21 adress
HANDLE hCom;
BYTE SerialBuf[200];

...

		BD.Servo = 0x3F;                            //base adress servo1 (63)
		BD.Leg0base = 0x40;                       //position 64
		
		SerialBuf[0] = I2C_CMD;			//send I2C command
		SerialBuf[1] = SD21;			//adress of SD21
		SerialBuf[2] = BD.Servo;
		SerialBuf[3] = BD.Leg0base;

		WriteFile(hCom, &SerialBuf, 4, &n, NULL);
Es bewegt sich absolut nichts

Weiss jemand Rat ?