diff --git a/src/shared/sensors/LIS3MDL/LIS3MDL.cpp b/src/shared/sensors/LIS3MDL/LIS3MDL.cpp index 91d8f42effecd7ed287db81b01cb378631dafc08..23ba605df1426ca9d25cfbcfd115eecd0ed50940 100644 --- a/src/shared/sensors/LIS3MDL/LIS3MDL.cpp +++ b/src/shared/sensors/LIS3MDL/LIS3MDL.cpp @@ -219,8 +219,8 @@ LIS3MDLData LIS3MDL::sampleImpl() tempCounter % configuration.temperatureDivider == 0) { val = spi.readRegister(TEMP_OUT_H); - val = val << 8; - val = spi.readRegister(TEMP_OUT_L); + val = (val << 8); + val |= spi.readRegister(TEMP_OUT_L); newData.temperatureTimestamp = TimestampTimer::getTimestamp(); newData.temperature = @@ -231,16 +231,19 @@ LIS3MDLData LIS3MDL::sampleImpl() newData.temperature = lastSample.temperature; } - val = spi.readRegister(OUT_X_H); - val = (val << 8) | spi.readRegister(OUT_X_L); + val = spi.readRegister(OUT_X_H); + val = (val << 8); + val |= spi.readRegister(OUT_X_L); newData.magneticFieldX = currentUnit * val; - val = spi.readRegister(OUT_Y_H); - val = (val << 8) | spi.readRegister(OUT_Y_L); + val = spi.readRegister(OUT_Y_H); + val = (val << 8); + val |= spi.readRegister(OUT_Y_L); newData.magneticFieldY = currentUnit * val; - val = spi.readRegister(OUT_Z_H); - val = (val << 8) | spi.readRegister(OUT_Z_L); + val = spi.readRegister(OUT_Z_H); + val = (val << 8); + val |= spi.readRegister(OUT_Z_L); newData.magneticFieldZ = currentUnit * val; return newData;