Skip to content

Commit

Permalink
Update mpu6050_i2c.c (#579)
Browse files Browse the repository at this point in the history
Explanation of Changes:
The first part of the function resets the MPU6050 by writing 0x80 to the 0x6B register, which is the reset command.
After a short delay (100 ms) to allow the reset to take effect, the second part writes 0x00 to the 0x6B register to clear the sleep mode and wake up the device.
A short 10 ms delay is added after clearing the sleep mode to allow the device to stabilize.
  • Loading branch information
abdalla1912mohamed authored Nov 24, 2024
1 parent 7e77a0c commit 130987d
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions i2c/mpu6050_i2c/mpu6050_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ static void mpu6050_reset() {
// There are a load more options to set up the device in different ways that could be added here
uint8_t buf[] = {0x6B, 0x80};
i2c_write_blocking(i2c_default, addr, buf, 2, false);
sleep_ms(100); // Allow device to reset and stabilize

// Clear sleep mode (0x6B register, 0x00 value)
buf[1] = 0x00; // Clear sleep mode by writing 0x00 to the 0x6B register
i2c_write_blocking(i2c_default, addr, buf, 2, false);
sleep_ms(10); // Allow stabilization after waking up
}

static void mpu6050_read_raw(int16_t accel[3], int16_t gyro[3], int16_t *temp) {
Expand Down

0 comments on commit 130987d

Please sign in to comment.