BMP180 Pressure/Temperature Sensor library
Dependents: GliderFuncTest1 DropTest
Fork of BMP180 by
Revision 3:ae101ea7bd90, committed 2017-04-24
- Comitter:
- chasefarmer2808
- Date:
- Mon Apr 24 21:34:02 2017 +0000
- Parent:
- 2:1dad52218be5
- Commit message:
- accurat;
Changed in this revision
BMP180.cpp | Show annotated file Show diff for this revision Revisions of this file |
BMP180.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 1dad52218be5 -r ae101ea7bd90 BMP180.cpp --- a/BMP180.cpp Sun Apr 09 05:05:11 2017 +0000 +++ b/BMP180.cpp Mon Apr 24 21:34:02 2017 +0000 @@ -11,7 +11,7 @@ Released under the MIT License (see http://mbed.org/license/mit) Documentation regarding the BMP180 can be found here: - + http://mbed.org/media/uploads/spiridion/bst-bmp180-ds000-09.pdf */ #include "BMP180.h" @@ -105,18 +105,20 @@ *pPressure = m_pressure; if (pTemperature) *pTemperature = m_temperature; - if (pAltitude) - *pAltitude = getAltitude(pPressure); - - return 1; + + *pAltitude = getAltitude(pPressure); + return 1; } -float BMP180::getAltitude(float* p) { - //return 44330.0 * (1.0 - pow((*p / m_altitude), (float)0.1903)); - float altitude = (*p / m_altitude); +float BMP180::getAltitude(float* p) +{ /* + // formula for conversion directly from documentation + float altitude = (*p / SENSORS_PRESSURE_SEALEVELHPA); altitude = pow(altitude, (float)(1 / 5.255)); altitude = 44330 * (1 - altitude); return altitude; + */ + return 44330.0 * (1.0 - pow((float)(*p / SENSORS_PRESSURE_SEALEVELHPA), (float)0.1903)); } int BMP180::ReadRawTemperature(long* pUt) @@ -227,10 +229,11 @@ x1 = (x1 * 3038) >> 16; x2 = (-7357 * p) >> 16; p = p + ((x1 + x2 + 3791) >> 4); - + // convert to hPa and, if altitude has been initialized, to sea level pressure if (m_altitude == 0.F) return p / 100.F; else return p / (100.F * pow((1.F - m_altitude / 44330.0L), 5.255L)); + } \ No newline at end of file
diff -r 1dad52218be5 -r ae101ea7bd90 BMP180.h --- a/BMP180.h Sun Apr 09 05:05:11 2017 +0000 +++ b/BMP180.h Mon Apr 24 21:34:02 2017 +0000 @@ -30,6 +30,7 @@ #define UNSET_BMP180_PRESSURE_VALUE 0.F #define UNSET_BMP180_TEMPERATURE_VALUE -273.15F // absolute zero +#define SENSORS_PRESSURE_SEALEVELHPA (1013.25F) /**< Average sea level pressure is 1013.25 hPa */ /** BMP180 class. * Read Pressure and temperature from the BMP180 Breakout I2C sensor