MPU6050 raw FIFO read ?

hi,

i have a question regarding FIFO reading of mpu6050.

Why do i get different values when comparing this two blocks of code:

First block from arduino page tutorial - reading values from 0x3b accel, temp, gyro

Wire.beginTransmission(MPU_addr);
Wire.write(0x3b);
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr,14,true);
  
AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)    
AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
AcZ=Wire.read()<<8|Wire.read();  // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
Tmp=Wire.read()<<8|Wire.read();  // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
GyX=Wire.read()<<8|Wire.read();  // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
GyY=Wire.read()<<8|Wire.read();  // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
GyZ=Wire.read()<<8|Wire.read();  // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)

above values are good as they make sense when watching in serial monitor, but as soon as i switch to fifo reading, values are different

Wire.beginTransmission(MPU_addr);
Wire.write(0x74);
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr,14,true);
  
AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)    
AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
AcZ=Wire.read()<<8|Wire.read();  // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
Tmp=Wire.read()<<8|Wire.read();  // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
GyX=Wire.read()<<8|Wire.read();  // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
GyY=Wire.read()<<8|Wire.read();  // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
GyZ=Wire.read()<<8|Wire.read();  // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)

shouldn’t they be exactly the same ?

fifo is enabled and fifo_en values are set like this:

    Wire.beginTransmission(MPU_addr); // enable 
    Wire.write(0x6a); 
    Wire.write(0x40);
    Wire.endTransmission(true);

    Wire.beginTransmission(MPU_addr); //  mask
    Wire.write(0x23); 
    Wire.write(0xf8);
    Wire.endTransmission(true);

i’am porting some code to arduino form c, and they use fifo - whats the difference between fifo (0x74) and register reading (0x3b )as in tutorial ?

thanks for any help

Try reading the 6050 datasheet, answers to such questions should be there