Paparazzi UAS
v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
|
Bosch BMP085 driver interface. More...
Go to the source code of this file.
Data Structures | |
struct | Bmp085Calib |
struct | Bmp085 |
Typedefs | |
typedef bool_t(* | Bmp085EOC )(void) |
Enumerations | |
enum | Bmp085Status { BMP085_STATUS_UNINIT, BMP085_STATUS_IDLE, BMP085_STATUS_START_TEMP, BMP085_STATUS_READ_TEMP, BMP085_STATUS_START_PRESS, BMP085_STATUS_READ_PRESS } |
Functions | |
void | bmp085_read_eeprom_calib (struct Bmp085 *bmp) |
void | bmp085_init (struct Bmp085 *bmp, struct i2c_periph *i2c_p, uint8_t addr) |
void | bmp085_periodic (struct Bmp085 *bmp) |
Start new measurement if idle or read temp/pressure. More... | |
void | bmp085_event (struct Bmp085 *bmp) |
Bosch BMP085 driver interface.
Definition in file bmp085.h.
struct Bmp085Calib |
struct Bmp085 |
Data Fields | ||
---|---|---|
struct Bmp085Calib | calib | |
volatile bool_t | data_available | data ready flag |
Bmp085EOC | eoc | function to check End Of Conversion |
struct i2c_periph * | i2c_p | |
struct i2c_transaction | i2c_trans | |
bool_t | initialized | config done flag |
int32_t | pressure | pressure in Pascal |
enum Bmp085Status | status | state machine status |
int32_t | temperature | temperature in 0.1 deg Celcius |
int32_t | up | uncompensated pressure |
int32_t | ut | uncompensated temperature |
enum Bmp085Status |
void bmp085_event | ( | struct Bmp085 * | bmp | ) |
Definition at line 142 of file bmp085.c.
References Bmp085Calib::ac1, Bmp085Calib::ac2, Bmp085Calib::ac3, Bmp085Calib::ac4, Bmp085Calib::ac5, Bmp085Calib::ac6, Bmp085Calib::b1, Bmp085Calib::b2, bmp085_compensated_pressure(), bmp085_compensated_temperature(), BMP085_CTRL_REG, BMP085_OSS, BMP085_START_P3, BMP085_STATUS_IDLE, BMP085_STATUS_READ_PRESS, BMP085_STATUS_READ_TEMP, BMP085_STATUS_START_PRESS, BMP085_STATUS_UNINIT, i2c_transaction::buf, Bmp085::calib, Bmp085::data_available, Bmp085::i2c_p, Bmp085::i2c_trans, i2c_transmit(), I2CTransDone, I2CTransFailed, I2CTransSuccess, Bmp085::initialized, Bmp085Calib::mb, Bmp085Calib::mc, Bmp085Calib::md, Bmp085::pressure, i2c_transaction::slave_addr, Bmp085::status, i2c_transaction::status, Bmp085::temperature, TRUE, Bmp085::up, and Bmp085::ut.
Referenced by baro_bmp_event(), baro_event(), and bmp_baro_event().
void bmp085_init | ( | struct Bmp085 * | bmp, |
struct i2c_periph * | i2c_p, | ||
uint8_t | addr | ||
) |
Definition at line 83 of file bmp085.c.
References bmp085_eoc_true(), BMP085_STATUS_UNINIT, Bmp085::data_available, Bmp085::eoc, FALSE, Bmp085::i2c_p, Bmp085::i2c_trans, I2CTransDone, Bmp085::initialized, i2c_transaction::slave_addr, Bmp085::status, and i2c_transaction::status.
Referenced by baro_bmp_init(), and baro_init().
void bmp085_periodic | ( | struct Bmp085 * | bmp | ) |
Start new measurement if idle or read temp/pressure.
Should run at < 40Hz unless eoc check function is provided. At ultra high resolution (oss = 3) conversion time is max 25.5ms.
Definition at line 108 of file bmp085.c.
References BMP085_CTRL_REG, BMP085_DAT_MSB, BMP085_START_TEMP, BMP085_STATUS_IDLE, BMP085_STATUS_READ_PRESS, BMP085_STATUS_READ_TEMP, BMP085_STATUS_START_PRESS, BMP085_STATUS_START_TEMP, i2c_transaction::buf, Bmp085::eoc, Bmp085::i2c_p, Bmp085::i2c_trans, i2c_transceive(), i2c_transmit(), i2c_transaction::slave_addr, and Bmp085::status.
Referenced by baro_bmp_periodic(), and baro_periodic().
void bmp085_read_eeprom_calib | ( | struct Bmp085 * | bmp | ) |
Definition at line 73 of file bmp085.c.
References BMP085_EEPROM_AC1, BMP085_STATUS_UNINIT, i2c_transaction::buf, FALSE, Bmp085::i2c_p, Bmp085::i2c_trans, i2c_transceive(), I2CTransDone, Bmp085::initialized, i2c_transaction::slave_addr, Bmp085::status, and i2c_transaction::status.
Referenced by baro_bmp_periodic(), and baro_periodic().