From 3fb8f5df62f516e2358eb58de3f4b088cc26dfc0 Mon Sep 17 00:00:00 2001 From: garfieldG Date: Wed, 6 Jan 2021 04:37:08 +0200 Subject: [PATCH] drivers/lsm303agr: fixed bug incorrectly assembling signed 16 bit integer from bytes --- src/drivers/magnetometer/lsm303agr/LSM303AGR.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/drivers/magnetometer/lsm303agr/LSM303AGR.cpp b/src/drivers/magnetometer/lsm303agr/LSM303AGR.cpp index 7a98895474..f952c11171 100644 --- a/src/drivers/magnetometer/lsm303agr/LSM303AGR.cpp +++ b/src/drivers/magnetometer/lsm303agr/LSM303AGR.cpp @@ -315,9 +315,9 @@ int LSM303AGR::collect() const hrt_abstime timestamp_sample = hrt_absolute_time(); // switch to right hand coordinate system in place - float x_raw = read_reg(OUTX_L_REG_M) + (read_reg(OUTX_H_REG_M) << 8); - float y_raw = read_reg(OUTY_L_REG_M) + (read_reg(OUTY_H_REG_M) << 8); - float z_raw = -(read_reg(OUTZ_L_REG_M) + (read_reg(OUTZ_H_REG_M) << 8)); + int16_t x_raw = read_reg(OUTX_L_REG_M) + (read_reg(OUTX_H_REG_M) << 8); + int16_t y_raw = read_reg(OUTY_L_REG_M) + (read_reg(OUTY_H_REG_M) << 8); + int16_t z_raw = -(read_reg(OUTZ_L_REG_M) + (read_reg(OUTZ_H_REG_M) << 8)); _px4_mag.update(timestamp_sample, x_raw, y_raw, z_raw);