The unified diff between revisions [056a532c..] and [3dc5e7ac..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'mpu6050.c'
# # old_revision [056a532c92301bcb224e1f786c5f6720e8acf3eb] # new_revision [3dc5e7ac4bcb952cc267892653dd78ed095d8778] # # patch "mpu6050.c" # from [9459051539738c013ae40e90c65e2936d93fc2bf] # to [5d8f76d27782d746df9ee37d7c9a9f1329e6996a] # ============================================================ --- mpu6050.c 9459051539738c013ae40e90c65e2936d93fc2bf +++ mpu6050.c 5d8f76d27782d746df9ee37d7c9a9f1329e6996a @@ -57,14 +57,24 @@ unsigned char mpu6050_accel_init_command unsigned char mpu6050_init_command[] = {0x6B, 0x01}; unsigned char mpu6050_accel_init_command[] = {0x1c, (AFS_SEL<<3)}; +unsigned char mpu6050_bypass_init_command[] = {0x37, 0x02}; +struct i2c_transaction mpu6050_bypass_init_transaction = { + (0x68 << 1) + 0, /* write */ + 2, + mpu6050_bypass_init_command, + &mpu6050_result, + EVENT_MPU6050_I2C_COMPLETE, + NULL +}; + struct i2c_transaction mpu6050_accel_init_transaction = { (0x68 << 1) + 0, /* write */ 2, mpu6050_accel_init_command, &mpu6050_result, EVENT_MPU6050_I2C_COMPLETE, - NULL + &mpu6050_bypass_init_transaction }; struct i2c_transaction mpu6050_init_transaction = { @@ -204,9 +214,8 @@ void mpu6050_event_handler(void) signed short int tempi; signed short int rolli, pitchi, yawi; - float x, y, z; + vec3f accel, gyro; float temp; - float roll, pitch, yaw; CHECKPOINT(9); @@ -242,18 +251,18 @@ void mpu6050_event_handler(void) yawi -= gyro_zero_yaw; } - x = ((float)xi) * ACCEL_SCALE; - y = ((float)yi) * ACCEL_SCALE; - z = ((float)zi) * ACCEL_SCALE; + accel.x = ((float)xi) * ACCEL_SCALE; + accel.y = ((float)yi) * ACCEL_SCALE; + accel.z = ((float)zi) * ACCEL_SCALE; temp = ((float)tempi) * TEMP_SCALE + TEMP_OFFSET; - roll = ((float)rolli) * GYRO_SCALE; - pitch = ((float)pitchi) * GYRO_SCALE; - yaw = ((float)yawi) * GYRO_SCALE; + gyro.x = ((float)rolli) * GYRO_SCALE; + gyro.y = ((float)pitchi) * GYRO_SCALE; + gyro.z = ((float)yawi) * GYRO_SCALE; - sensors_write_gyro_data(roll, pitch, yaw); - sensors_write_accel_data(x, y, z); + sensors_write_gyro_data(gyro); + sensors_write_accel_data(accel); sensors_write_temp_data(temp); log_put_array((char *)mpu6050_sample_data, 14);