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 ?
Lesezeichen