mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-12 19:10:32 +03:00
Fix LPS22H barometer macros and add SPI support in common_pre.h
This commit is contained in:
parent
1100d9ef37
commit
9322ed6a1b
2 changed files with 12 additions and 3 deletions
|
@ -50,8 +50,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Macros to encode/decode multi-bit values
|
// Macros to encode/decode multi-bit values
|
||||||
#define LSM6DSV_ENCODE_BITS(val, mask, shift) ((val << shift) & mask)
|
#define LPS22H_ENCODE_BITS(val, mask, shift) ((val << shift) & mask)
|
||||||
#define LSM6DSV_DECODE_BITS(val, mask, shift) ((val & mask) >> shift)
|
#define LPS22H_DECODE_BITS(val, mask, shift) ((val & mask) >> shift)
|
||||||
|
|
||||||
// RESERVED - 00-0A
|
// RESERVED - 00-0A
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ bool lps22hDetect(baroDev_t *baro)
|
||||||
|
|
||||||
// Reset the device
|
// Reset the device
|
||||||
busWriteRegister(dev, LPS22H_CTRL_REG2, LPS22H_CTRL_REG2_SWRESET);
|
busWriteRegister(dev, LPS22H_CTRL_REG2, LPS22H_CTRL_REG2_SWRESET);
|
||||||
busWriteRegister(dev, LPS22H_CTRL_REG1, LSM6DSV_ENCODE_BITS(
|
busWriteRegister(dev, LPS22H_CTRL_REG1, LPS22H_ENCODE_BITS(
|
||||||
LPS22H_CTRL_REG1_ODR_POWER_DOWN, LPS22H_CTRL_REG1_ODR_MASK, LPS22H_CTRL_REG1_ODR_SHIFT
|
LPS22H_CTRL_REG1_ODR_POWER_DOWN, LPS22H_CTRL_REG1_ODR_MASK, LPS22H_CTRL_REG1_ODR_SHIFT
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -275,7 +275,15 @@ static bool lps22hGetUP(baroDev_t *baro)
|
||||||
}
|
}
|
||||||
|
|
||||||
lps22h_up = (int32_t)(sensor_data[0] | sensor_data[1] << 8 | sensor_data[2] << 16);
|
lps22h_up = (int32_t)(sensor_data[0] | sensor_data[1] << 8 | sensor_data[2] << 16);
|
||||||
|
// Sign extend 24-bit to 32-bit
|
||||||
|
if (lps22h_up & 0x800000) {
|
||||||
|
lps22h_up |= 0xFF000000; // Extend sign bit
|
||||||
|
}
|
||||||
|
|
||||||
lps22h_ut = (int32_t)(sensor_data[3] | sensor_data[4] << 8);
|
lps22h_ut = (int32_t)(sensor_data[3] | sensor_data[4] << 8);
|
||||||
|
if (lps22h_ut & 0x8000) {
|
||||||
|
lps22h_ut |= 0xFFFF0000; // Sign extend 16-bit to 32-bit
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,6 +97,7 @@
|
||||||
#define USE_BARO_LPS22DF
|
#define USE_BARO_LPS22DF
|
||||||
#define USE_BARO_SPI_LPS22DF
|
#define USE_BARO_SPI_LPS22DF
|
||||||
#define USE_BARO_LPS22H
|
#define USE_BARO_LPS22H
|
||||||
|
#define USE_BARO_SPI_LPS22H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(USE_GYRO) && !defined(USE_ACC)
|
#if !defined(USE_GYRO) && !defined(USE_ACC)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue