Skip to content

Commit 1c85963

Browse files
authored
PrintActiveOffsets can be simplified
GetActiveOffsets was duplicated in PrintActiveOffsets so we can simplify further the function PrintActiveOffsets and eliminate duplicating code.
1 parent 5c3e72d commit 1c85963

1 file changed

Lines changed: 13 additions & 27 deletions

File tree

Arduino/MPU6050/MPU6050.cpp

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3373,39 +3373,25 @@ void MPU6050_Base::PID(uint8_t ReadAddress, float kP,float kI, uint8_t Loops){
33733373

33743374
int16_t * MPU6050_Base::GetActiveOffsets() {
33753375
uint8_t AOffsetRegister = (getDeviceID() < 0x38 )? MPU6050_RA_XA_OFFS_H:0x77;
3376-
int16_t Data[6]{0};
3377-
if(AOffsetRegister == 0x06) I2Cdev::readWords(devAddr, AOffsetRegister, 3, (uint16_t *)Data, I2Cdev::readTimeout, wireObj);
3376+
if(AOffsetRegister == 0x06) I2Cdev::readWords(devAddr, AOffsetRegister, 3, (uint16_t *)offsets, I2Cdev::readTimeout, wireObj);
33783377
else {
3379-
I2Cdev::readWords(devAddr, AOffsetRegister, 1, (uint16_t *)Data, I2Cdev::readTimeout, wireObj);
3380-
I2Cdev::readWords(devAddr, AOffsetRegister+3, 1, (uint16_t *)(Data+1), I2Cdev::readTimeout, wireObj);
3381-
I2Cdev::readWords(devAddr, AOffsetRegister+6, 1, (uint16_t *)(Data+2), I2Cdev::readTimeout, wireObj);
3382-
}
3383-
I2Cdev::readWords(devAddr, 0x13, 3, (uint16_t *)(Data+3), I2Cdev::readTimeout, wireObj);
3384-
for(uint i = 0; i < 6; i++){
3385-
offsets[i] = Data[i];
3378+
I2Cdev::readWords(devAddr, AOffsetRegister, 1, (uint16_t *)offsets, I2Cdev::readTimeout, wireObj);
3379+
I2Cdev::readWords(devAddr, AOffsetRegister+3, 1, (uint16_t *)(offsets+1), I2Cdev::readTimeout, wireObj);
3380+
I2Cdev::readWords(devAddr, AOffsetRegister+6, 1, (uint16_t *)(offsets+2), I2Cdev::readTimeout, wireObj);
33863381
}
3382+
I2Cdev::readWords(devAddr, 0x13, 3, (uint16_t *)(offsets+3), I2Cdev::readTimeout, wireObj);
33873383
return offsets;
33883384
}
33893385

33903386
void MPU6050_Base::PrintActiveOffsets() {
3391-
uint8_t AOffsetRegister = (getDeviceID() < 0x38 )? MPU6050_RA_XA_OFFS_H:0x77;
3392-
int16_t Data[3];
3393-
//Serial.print(F("Offset Register 0x"));
3394-
//Serial.print(AOffsetRegister>>4,HEX);Serial.print(AOffsetRegister&0x0F,HEX);
3395-
Serial.print(F("\n\n//\t\tX Accel\t\tY Accel\t\tZ Accel\t\tX Gyro\t\tY Gyro\t\tZ Gyro\n// OFFSETS\t"));
3396-
if(AOffsetRegister == 0x06) I2Cdev::readWords(devAddr, AOffsetRegister, 3, (uint16_t *)Data, I2Cdev::readTimeout, wireObj);
3397-
else {
3398-
I2Cdev::readWords(devAddr, AOffsetRegister, 1, (uint16_t *)Data, I2Cdev::readTimeout, wireObj);
3399-
I2Cdev::readWords(devAddr, AOffsetRegister+3, 1, (uint16_t *)Data+1, I2Cdev::readTimeout, wireObj);
3400-
I2Cdev::readWords(devAddr, AOffsetRegister+6, 1, (uint16_t *)Data+2, I2Cdev::readTimeout, wireObj);
3401-
}
3387+
GetActiveOffsets();
34023388
// A_OFFSET_H_READ_A_OFFS(Data);
3403-
Serial.print((float)Data[0], 5); Serial.print(",\t");
3404-
Serial.print((float)Data[1], 5); Serial.print(",\t");
3405-
Serial.print((float)Data[2], 5); Serial.print(",\t");
3406-
I2Cdev::readWords(devAddr, 0x13, 3, (uint16_t *)Data, I2Cdev::readTimeout, wireObj);
3389+
Serial.print((float)offsets[0], 5); Serial.print(",\t");
3390+
Serial.print((float)offsets[1], 5); Serial.print(",\t");
3391+
Serial.print((float)offsets[2], 5); Serial.print(",\t");
3392+
34073393
// XG_OFFSET_H_READ_OFFS_USR(Data);
3408-
Serial.print((float)Data[0], 5); Serial.print(",\t");
3409-
Serial.print((float)Data[1], 5); Serial.print(",\t");
3410-
Serial.print((float)Data[2], 5); Serial.print("\n\n");
3394+
Serial.print((float)offsets[3], 5); Serial.print(",\t");
3395+
Serial.print((float)offsets[4], 5); Serial.print(",\t");
3396+
Serial.print((float)offsets[5], 5); Serial.print("\n\n");
34113397
}

0 commit comments

Comments
 (0)