BMP180用ライブラリ
Dependents: 2017_11_1768 2017_11_1768 201803_oshima_jodan 201803_oshima_gedan
Fork of BMP180 by
BMP180.h@2:5230f93e755b, 2016-11-21 (annotated)
- Committer:
- core201611
- Date:
- Mon Nov 21 15:20:42 2016 +0000
- Revision:
- 2:5230f93e755b
- Parent:
- 1:072073c79cfd
CORE2016?11????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
spiridion | 0:9a0671b6009f | 1 | |
spiridion | 0:9a0671b6009f | 2 | |
spiridion | 0:9a0671b6009f | 3 | #ifndef BMP180_H |
spiridion | 0:9a0671b6009f | 4 | #define BMP180_H |
spiridion | 0:9a0671b6009f | 5 | |
spiridion | 0:9a0671b6009f | 6 | #include "mbed.h" |
spiridion | 0:9a0671b6009f | 7 | |
spiridion | 0:9a0671b6009f | 8 | /// default address is 0xEF |
spiridion | 0:9a0671b6009f | 9 | #define BMP180_I2C_ADDRESS 0xEF |
spiridion | 0:9a0671b6009f | 10 | |
spiridion | 0:9a0671b6009f | 11 | // Oversampling settings |
spiridion | 0:9a0671b6009f | 12 | #define BMP180_OSS_ULTRA_LOW_POWER 0 // 1 sample and 4.5ms for conversion |
spiridion | 0:9a0671b6009f | 13 | #define BMP180_OSS_NORMAL 1 // 2 samples and 7.5ms for conversion |
spiridion | 0:9a0671b6009f | 14 | #define BMP180_OSS_HIGH_RESOLUTION 2 // 4 samples and 13.5ms for conversion |
spiridion | 0:9a0671b6009f | 15 | #define BMP180_OSS_ULTRA_HIGH_RESOLUTION 3 // 8 samples and 25.5ms for conversion |
spiridion | 0:9a0671b6009f | 16 | |
spiridion | 0:9a0671b6009f | 17 | #define UNSET_BMP180_PRESSURE_VALUE 0.F |
spiridion | 0:9a0671b6009f | 18 | #define UNSET_BMP180_TEMPERATURE_VALUE -273.15F // absolute zero |
spiridion | 0:9a0671b6009f | 19 | |
spiridion | 0:9a0671b6009f | 20 | class BMP180 |
spiridion | 0:9a0671b6009f | 21 | { |
spiridion | 0:9a0671b6009f | 22 | |
spiridion | 0:9a0671b6009f | 23 | public: |
spiridion | 0:9a0671b6009f | 24 | BMP180(PinName sda, PinName scl, int address = BMP180_I2C_ADDRESS); |
spiridion | 0:9a0671b6009f | 25 | BMP180(I2C& i2c, int address = BMP180_I2C_ADDRESS); |
spiridion | 0:9a0671b6009f | 26 | int Initialize(float altitude = 0.F, int overSamplingSetting = BMP180_OSS_NORMAL); |
spiridion | 0:9a0671b6009f | 27 | int ReadData(float* pTemperature = NULL, float* pPressure = NULL); |
spiridion | 0:9a0671b6009f | 28 | float GetTemperature() {return m_temperature;}; |
spiridion | 0:9a0671b6009f | 29 | float GetPressure() {return m_pressure;}; |
spiridion | 0:9a0671b6009f | 30 | |
spiridion | 0:9a0671b6009f | 31 | protected: |
spiridion | 0:9a0671b6009f | 32 | |
spiridion | 0:9a0671b6009f | 33 | int ReadRawTemperature(long* pUt); |
spiridion | 0:9a0671b6009f | 34 | int ReadRawPressure(long* pUp); |
spiridion | 0:9a0671b6009f | 35 | float TrueTemperature(long ut); |
spiridion | 0:9a0671b6009f | 36 | float TruePressure(long up); |
spiridion | 0:9a0671b6009f | 37 | |
spiridion | 0:9a0671b6009f | 38 | int m_oss; |
spiridion | 0:9a0671b6009f | 39 | float m_temperature; |
spiridion | 0:9a0671b6009f | 40 | float m_pressure; |
spiridion | 0:9a0671b6009f | 41 | float m_altitude; |
spiridion | 0:9a0671b6009f | 42 | |
spiridion | 0:9a0671b6009f | 43 | I2C m_i2c; |
spiridion | 0:9a0671b6009f | 44 | int m_addr; |
spiridion | 0:9a0671b6009f | 45 | char m_data[4]; |
spiridion | 0:9a0671b6009f | 46 | |
spiridion | 0:9a0671b6009f | 47 | short ac1, ac2, ac3; |
spiridion | 0:9a0671b6009f | 48 | unsigned short ac4, ac5, ac6; |
spiridion | 0:9a0671b6009f | 49 | short b1, b2; |
spiridion | 0:9a0671b6009f | 50 | short mb, mc, md; |
spiridion | 0:9a0671b6009f | 51 | long x1, x2, x3, b3, b5, b6; |
spiridion | 0:9a0671b6009f | 52 | unsigned long b4, b7; |
spiridion | 0:9a0671b6009f | 53 | |
spiridion | 0:9a0671b6009f | 54 | }; |
spiridion | 0:9a0671b6009f | 55 | |
spiridion | 0:9a0671b6009f | 56 | #endif |