Ok...aus irgendeinem Grund steht in der Slave vom RP6 bei move und bei rotate am ende false. Wenn ich jetzt mein Programm mit rotate true schreibe tut er dies zwar, aber danach reagiert er auf keine Taste mehr.
Wenn ich allerdings wie in der Slave steht, false dahinter schreibe, funktioniert es. Er rotiert und reagiert auf die Tasten, genau wie er es soll.
Hier nochmal der Code:
Code:
#include "RP6ControlLib.h"
#include "RP6I2CmasterTWI.h"
#include "RP6Control_I2CMasterLib.h"
int main(void)
{
initRP6Control();
I2CTWI_initMaster(100);
setLEDs(0b1111);
mSleep(1000);
setLEDs(0b0000);
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true);
I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true);
void I2C_requestedDataReady(uint8_t dataRequestID)
{
checkRP6Status(dataRequestID);
}
while(true)
{
uint8_t key = getPressedKeyNumber();
{
if(key == 5)
{
changeDirection(FWD);
moveAtSpeed(100,100);
}
if(key == 4)
{
changeDirection(BWD);
moveAtSpeed(100,100);
}
if(key == 1)
{
rotate(130,RIGHT,50,false);
}
if(key == 3)
{
rotate(130,LEFT,50,false);
}
if(key == 2)
{
moveAtSpeed(0,0);
}
}
task_I2CTWI();
}
return 0;
}
@ Momo2712: Versuchs mal mit rotate 0 anstatt 1 bzw. mit false anstatt true, kann gut sein das du das selbe Problem hast.
Lesezeichen