BMP180用ライブラリ

Dependents:   2017_11_1768 2017_11_1768 201803_oshima_jodan 201803_oshima_gedan

Fork of BMP180 by Spiridion Mbed

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?

UserRevisionLine numberNew 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