From 44dcfb1e509682ba9fc1fd09f995c36ab9145e12 Mon Sep 17 00:00:00 2001 From: Federico Mandelli <federicomandelli@skywarder.eu> Date: Sat, 24 Jun 2023 17:22:58 +0200 Subject: [PATCH] [lis3mdl] Fixed casting bug --- src/shared/sensors/LIS3MDL/LIS3MDL.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/shared/sensors/LIS3MDL/LIS3MDL.cpp b/src/shared/sensors/LIS3MDL/LIS3MDL.cpp index 91d8f42ef..23ba605df 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; -- GitLab