Hallo Arduino-Community,
I'm working with the MPU6050 sensor data but I don't get the logic behind the dmpGetQuaternion(&q,fifoBuffer) function, which uses the fifoBuffer Bytes [0] - [15] for creating uint32_t w,x,y and z.
When looking at the underlying getFIFOBytes (uint8_t *data, uint8_t length) code:
void MPU6050::getFIFOBytes(uint8_t *data, uint8_t length) {
if(length > 0){
I2Cdev::readBytes(devAddr, MPU6050_RA_FIFO_R_W, length, data);
} else {
*data = 0;
}
}
knowing that: #define MPU6050_RA_FIFO_R_W 0x74
and analyzing the "readBytes(...)" function in I2Cdev.cpp I wonder where the quaternion data come from?
In the datasheet I only see 0x74 = FIFO_DATA[7:0] with no information on quaternions?
Can anybody please tell me what I missed here and where the quaternions come from?
Best regards,
Lukas