Abdelmalek BELLOULA
/
DataLogIMU-BARO
interface to chr_6dm and Baro bmp085
BMP085.h@0:d07617f8ede9, 2011-10-17 (annotated)
- Committer:
- belloula
- Date:
- Mon Oct 17 19:43:06 2011 +0000
- Revision:
- 0:d07617f8ede9
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
belloula | 0:d07617f8ede9 | 1 | #ifndef BMP085_H |
belloula | 0:d07617f8ede9 | 2 | #define BMP085_H |
belloula | 0:d07617f8ede9 | 3 | |
belloula | 0:d07617f8ede9 | 4 | #include "mbed.h" |
belloula | 0:d07617f8ede9 | 5 | |
belloula | 0:d07617f8ede9 | 6 | /** |
belloula | 0:d07617f8ede9 | 7 | * @brief over sampling setting |
belloula | 0:d07617f8ede9 | 8 | */ |
belloula | 0:d07617f8ede9 | 9 | enum BMP085_oss { |
belloula | 0:d07617f8ede9 | 10 | BMP085_oss1 = 0, ///< ultra low power (1 time) |
belloula | 0:d07617f8ede9 | 11 | BMP085_oss2 = 1, ///< standard (2 times) |
belloula | 0:d07617f8ede9 | 12 | BMP085_oss4 = 2, ///< high resolution (4 times) |
belloula | 0:d07617f8ede9 | 13 | BMP085_oss8 = 3 ///< ultra high resolution (8 times) |
belloula | 0:d07617f8ede9 | 14 | }; |
belloula | 0:d07617f8ede9 | 15 | |
belloula | 0:d07617f8ede9 | 16 | /** |
belloula | 0:d07617f8ede9 | 17 | * @brief BMP085 class |
belloula | 0:d07617f8ede9 | 18 | */ |
belloula | 0:d07617f8ede9 | 19 | class BMP085 : public Base { |
belloula | 0:d07617f8ede9 | 20 | public: |
belloula | 0:d07617f8ede9 | 21 | BMP085(PinName p_sda, PinName p_scl, BMP085_oss p_oss = BMP085_oss1); |
belloula | 0:d07617f8ede9 | 22 | BMP085(I2C& p_i2c, BMP085_oss p_oss = BMP085_oss1); |
belloula | 0:d07617f8ede9 | 23 | |
belloula | 0:d07617f8ede9 | 24 | float get_temperature(); |
belloula | 0:d07617f8ede9 | 25 | float get_pressure(); |
belloula | 0:d07617f8ede9 | 26 | float get_altitude(); |
belloula | 0:d07617f8ede9 | 27 | void update(); |
belloula | 0:d07617f8ede9 | 28 | unsigned char ok; |
belloula | 0:d07617f8ede9 | 29 | |
belloula | 0:d07617f8ede9 | 30 | protected: |
belloula | 0:d07617f8ede9 | 31 | void init(BMP085_oss); |
belloula | 0:d07617f8ede9 | 32 | unsigned short twi_readshort (int, int); |
belloula | 0:d07617f8ede9 | 33 | unsigned long twi_readlong (int, int); |
belloula | 0:d07617f8ede9 | 34 | void twi_writechar (int, int, int); |
belloula | 0:d07617f8ede9 | 35 | |
belloula | 0:d07617f8ede9 | 36 | I2C i2c; |
belloula | 0:d07617f8ede9 | 37 | float temperature; |
belloula | 0:d07617f8ede9 | 38 | float pressure; |
belloula | 0:d07617f8ede9 | 39 | float altitude; |
belloula | 0:d07617f8ede9 | 40 | |
belloula | 0:d07617f8ede9 | 41 | private: |
belloula | 0:d07617f8ede9 | 42 | |
belloula | 0:d07617f8ede9 | 43 | short ac1, ac2, ac3, b1, b2, mb, mc, md, oss; |
belloula | 0:d07617f8ede9 | 44 | unsigned short ac4, ac5, ac6; |
belloula | 0:d07617f8ede9 | 45 | }; |
belloula | 0:d07617f8ede9 | 46 | |
belloula | 0:d07617f8ede9 | 47 | #endif |