IMU problem - I2C

jremington:
Gyros generally output an "offset" when held stationary, and it will be different on each axis. Calibration is required[...]

Thank you for reminding me of that but there must be something else that is wrong...

I2C_write(GYRO_ADDRESS, 0x23, 0b00010000);

sets the gyro to 500dps so I have no freaking idea how I can get readings of 800dps...