Skip to content

Commit

Permalink
fixed resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
stefcarpi committed Oct 17, 2024
1 parent c247d35 commit a06c1b9
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions src/MPU6050.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ void MPU6050_Base::initialize() {
setClockSource(MPU6050_CLOCK_PLL_XGYRO);

setFullScaleGyroRange(MPU6050_GYRO_FS_250);
gyroscopeResolution = 250.0 / 16384.0;
gyroscopeResolution = 250.0 / 32768.0;

setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
accelerationResolution = 2.0 / 16384.0;
accelerationResolution = 2.0 / 32768.0;

setSleepEnabled(false); // thanks to Jack Elston for pointing this one out!
}
Expand All @@ -92,54 +92,54 @@ void MPU6050_Base::initialize(ACCEL_FS accelRange, GYRO_FS gyroRange) {
{
case ACCEL_FS::A2G:
setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
accelerationResolution = 2.0 / 16384.0;
accelerationResolution = 2.0 / 32768.0;
break;

case ACCEL_FS::A4G:
setFullScaleAccelRange(MPU6050_ACCEL_FS_4);
accelerationResolution = 4.0 / 16384.0;
accelerationResolution = 4.0 / 32768.0;
break;

case ACCEL_FS::A8G:
setFullScaleAccelRange(MPU6050_ACCEL_FS_8);
accelerationResolution = 8.0 / 16384.0;
accelerationResolution = 8.0 / 32768.0;
break;

case ACCEL_FS::A16G:
setFullScaleAccelRange(MPU6050_ACCEL_FS_16);
accelerationResolution = 16.0 / 16384.0;
accelerationResolution = 16.0 / 32768.0;
break;
default:
Serial.println("Init accelRange not valid, setting maximum accel range");
setFullScaleAccelRange(MPU6050_ACCEL_FS_16);
accelerationResolution = 16.0 / 16384.0;
accelerationResolution = 16.0 / 32768.0;
}

switch (gyroRange)
{
case GYRO_FS::G250DPS:
setFullScaleGyroRange(MPU6050_GYRO_FS_250);
gyroscopeResolution = 250.0 / 16384.0;
gyroscopeResolution = 250.0 / 32768.0;
break;

case GYRO_FS::G500DPS:
setFullScaleGyroRange(MPU6050_GYRO_FS_500);
gyroscopeResolution = 500.0 / 16384.0;
gyroscopeResolution = 500.0 / 32768.0;
break;

case GYRO_FS::G1000DPS:
setFullScaleGyroRange(MPU6050_GYRO_FS_1000);
gyroscopeResolution = 1000.0 / 16384.0;
gyroscopeResolution = 1000.0 / 32768.0;
break;

case GYRO_FS::G2000DPS:
setFullScaleGyroRange(MPU6050_GYRO_FS_2000);
gyroscopeResolution = 2000.0 / 16384.0;
gyroscopeResolution = 2000.0 / 32768.0;
break;
default:
Serial.println("Init gyroRange not valid, setting maximum gyro range");
setFullScaleGyroRange(MPU6050_GYRO_FS_2000);
gyroscopeResolution = 2000.0 / 16384.0;
gyroscopeResolution = 2000.0 / 32768.0;
}

setSleepEnabled(false); // thanks to Jack Elston for pointing this one out!
Expand Down Expand Up @@ -3415,7 +3415,7 @@ void MPU6050_Base::PID(uint8_t ReadAddress, float kP,float kI, uint8_t Loops){
int16_t eSample;
uint32_t eSum;
uint16_t gravity = 8192; // prevent uninitialized compiler warning
if (ReadAddress == 0x3B) gravity = 16384 >> getFullScaleAccelRange();
if (ReadAddress == 0x3B) gravity = 32768 >> getFullScaleAccelRange();
Serial.write('>');
for (int i = 0; i < 3; i++) {
I2Cdev::readWords(devAddr, SaveAddress + (i * shift), 1, (uint16_t *)&Data, I2Cdev::readTimeout, wireObj); // reads 1 or more 16 bit integers (Word)
Expand Down

0 comments on commit a06c1b9

Please sign in to comment.