Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
bmp085.h File Reference

Bosch BMP085 driver interface. More...

#include "mcu_periph/i2c.h"
#include "std.h"
+ Include dependency graph for bmp085.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Bmp085Calib
 
struct  Bmp085
 

Typedefs

typedef bool(* 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)
 

Detailed Description

Bosch BMP085 driver interface.

Definition in file bmp085.h.


Data Structure Documentation

◆ Bmp085Calib

struct Bmp085Calib

Definition at line 42 of file bmp085.h.

Data Fields
int16_t ac1
int16_t ac2
int16_t ac3
uint16_t ac4
uint16_t ac5
uint16_t ac6
int16_t b1
int16_t b2
int32_t b5
int16_t mb
int16_t mc
int16_t md

◆ Bmp085

struct Bmp085

Definition at line 62 of file bmp085.h.

+ Collaboration diagram for Bmp085:
Data Fields
struct Bmp085Calib calib
volatile bool data_available data ready flag
Bmp085EOC eoc function to check End Of Conversion
struct i2c_periph * i2c_p
struct i2c_transaction i2c_trans
bool 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

Typedef Documentation

◆ Bmp085EOC

typedef bool(* Bmp085EOC) (void)

Definition at line 60 of file bmp085.h.

Enumeration Type Documentation

◆ Bmp085Status

Enumerator
BMP085_STATUS_UNINIT 
BMP085_STATUS_IDLE 
BMP085_STATUS_START_TEMP 
BMP085_STATUS_READ_TEMP 
BMP085_STATUS_START_PRESS 
BMP085_STATUS_READ_PRESS 

Definition at line 33 of file bmp085.h.

Function Documentation

◆ bmp085_event()

◆ bmp085_init()

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, Bmp085::i2c_p, Bmp085::i2c_trans, I2CTransDone, Bmp085::initialized, i2c_transaction::slave_addr, i2c_transaction::status, and Bmp085::status.

Referenced by baro_bmp_init(), and baro_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bmp085_periodic()

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bmp085_read_eeprom_calib()

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, Bmp085::i2c_p, Bmp085::i2c_trans, i2c_transceive(), I2CTransDone, Bmp085::initialized, i2c_transaction::slave_addr, i2c_transaction::status, and Bmp085::status.

Referenced by baro_bmp_periodic(), and baro_periodic().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: