bmp280: add function to check for valid measurements
This commit is contained in:
parent
07dd91ecc2
commit
c807acec11
10
src/bmp280.c
10
src/bmp280.c
|
@ -39,6 +39,7 @@ extern int16_t dig_P9;
|
||||||
|
|
||||||
static fxp_t m_last_temperature = 0;
|
static fxp_t m_last_temperature = 0;
|
||||||
static fxp_t m_last_pressure = 0;
|
static fxp_t m_last_pressure = 0;
|
||||||
|
static bool m_measurements_valid = false;
|
||||||
|
|
||||||
static int32_t m_temp_raw;
|
static int32_t m_temp_raw;
|
||||||
static int32_t m_press_raw;
|
static int32_t m_press_raw;
|
||||||
|
@ -49,6 +50,8 @@ static void cb_i2c_dma(const uint8_t *rdata, size_t rlen);
|
||||||
|
|
||||||
bool bmp280_init(void)
|
bool bmp280_init(void)
|
||||||
{
|
{
|
||||||
|
m_measurements_valid = false;
|
||||||
|
|
||||||
// configure pins for I2C1
|
// configure pins for I2C1
|
||||||
gpio_set_af(BMP280_I2C_PORT, GPIO_AF4, BMP280_I2C_SCL | BMP280_I2C_SDA);
|
gpio_set_af(BMP280_I2C_PORT, GPIO_AF4, BMP280_I2C_SCL | BMP280_I2C_SDA);
|
||||||
gpio_mode_setup(BMP280_I2C_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, BMP280_I2C_SCL | BMP280_I2C_SDA);
|
gpio_mode_setup(BMP280_I2C_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, BMP280_I2C_SCL | BMP280_I2C_SDA);
|
||||||
|
@ -214,6 +217,7 @@ bool bmp280_loop(void)
|
||||||
case COMPENSATE_PRESSURE:
|
case COMPENSATE_PRESSURE:
|
||||||
m_last_pressure = bmp280_comp_pressure(m_press_raw);
|
m_last_pressure = bmp280_comp_pressure(m_press_raw);
|
||||||
m_readout_state = READY;
|
m_readout_state = READY;
|
||||||
|
m_measurements_valid = true;
|
||||||
retval = true;
|
retval = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -246,6 +250,12 @@ bool bmp280_start_measurement(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool bmp280_are_measurements_valid(void)
|
||||||
|
{
|
||||||
|
return m_measurements_valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
fxp_t bmp280_get_temperature(void)
|
fxp_t bmp280_get_temperature(void)
|
||||||
{
|
{
|
||||||
return m_last_temperature;
|
return m_last_temperature;
|
||||||
|
|
|
@ -11,6 +11,7 @@ bool bmp280_loop(void); // returns true if measurements have been updated
|
||||||
|
|
||||||
bool bmp280_start_measurement(void);
|
bool bmp280_start_measurement(void);
|
||||||
|
|
||||||
|
bool bmp280_are_measurements_valid(void);
|
||||||
fxp_t bmp280_get_temperature(void);
|
fxp_t bmp280_get_temperature(void);
|
||||||
fxp_t bmp280_get_pressure(void);
|
fxp_t bmp280_get_pressure(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue