Weil ich habe das jetzt mal ganz simpel getestet und das funktioniert ja auch nicht.
Siehe Anhang
Mist wurde vom Forum verkleinert.
aber im Code steht folgendes:
Code: Alles auswählen
unsigned int uiXAxis=1025;
signed int uiYAxis=-12;
signed int uiZAxis=-109;
memset(&stmp, 0, sizeof(stmp));
stmp[0]=(char) (uiXAxis >> 0x08);
stmp[1]=(char) (uiXAxis && 0xFF);
stmp[2]=(char) (uiYAxis >> 0x08);
stmp[3]=(char) (uiYAxis && 0xFF);
stmp[4]=(char) (uiZAxis >> 0x08);
stmp[5]=(char) (uiZAxis && 0xFF);
stmp[6]=euler.x()/2; //0 bis 360 umwandeln und als 1U empfangen;
//stmp[6]=euler.y(); // -90 bis 90 als 1S empfangen;
stmp[7]=euler.z()/2; // -180 bis 180 ; durch 2 teilen, als 1S empfangen und wieder *2 multiplizieren;
CAN.sendMsgBuf(0x7B, 0, 8, stmp);
Und trotzdem zeigt es mir für die negativen Werte immer nur -255 an