hi allerseits,
im zusammenhang mit der neuen I/O beschäftige ich mich auch wieder mit der M32:
Code:
#include "RP6ControlLib.h"
#include "RP6I2CmasterTWI.h"
#include "RP6Control_I2CMasterLib.h"
void I2C_transmissionError(uint8_t errorState)
{
clearLCD();
writeStringLCD_P("I2C ERROR -->");
setCursorPosLCD(1, 0); // line 2
writeStringLCD_P("TWI STATE: 0x");
writeIntegerLCD(errorState, HEX);
}
void I2C_requestedDataReady(uint8_t dataRequestID)
{
checkRP6Status(dataRequestID);
}
int main(void)
{
I2CTWI_initMaster(100);
I2CTWI_setRequestedDataReadyHandler(I2C_requestedDataReady);
I2CTWI_setTransmissionErrorHandler(I2C_transmissionError);
initRP6Control();
setLEDs(0b111111);
mSleep(1000);
// powerON();
setLEDs(0b101001);
mSleep (1000);
while(true)
{
// task_motionControl();
setLEDs(0b111111);
move(150, 0, 1000, 1);
setLEDs(0b100000);
mSleep(2500);
setLEDs(0b000100);
rotate(150, 2, 130, 1);
mSleep(2500);
// move(100, FWD, DIST_MM(1000), true);
// setLEDs(0b000100);
//setLEDs(0b100000);
//rotate(100, LEFT, 360, true);
//mSleep(2500);
}
return 0;
}
das progrämmchen läuft, die kompassdaten werden angezeigt, allerdings fährt der roboter keinen meter, sondern höchstens 20cm. Ich vermute, das liegt daran, dass die funktion "motionControl()" von der M32 aus nicht läuft. Zumindest ist es mir nicht gelungen sie soweit zu brinden, dass es beim kompilieren keine fehlermeldungen gab...
ist das die ursache, oder gibt es dafür andere gründe/erklärungen?
Lesezeichen