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:
Es bewegt sich absolut nichtsCode:#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);![]()
Weiss jemand Rat ?







Zitieren

Lesezeichen