Skip to content

Commit e768678

Browse files
committed
need to debug pressure calculations, not working yet
1 parent 03d0337 commit e768678

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

bmp180/bmp180.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "i2c.h"
33
#include <iostream>
44
#include <unistd.h>
5+
#include <math.h>
56

67
using namespace std;
78

@@ -92,11 +93,11 @@ double BMP180::readTemperature()
9293
return temp;
9394
}
9495

95-
double BMP180::readPressure()
96+
UINT16 BMP180::readPressure()
9697
{
9798
UINT16 UT = _readRawTemperature();
9899
UINT16 UP = _readRawPressure();
99-
double p = 0;
100+
UINT16 p = 0x00;
100101

101102
// temperature
102103
int X1 = ((UT - _cal_AC6) * _cal_AC5) >> 15;
@@ -114,7 +115,7 @@ double BMP180::readPressure()
114115
X2 = (_cal_B1 * ((B6 * B6) >> 12)) >> 16;
115116
X3 = ((X1 + X2) + 2) >> 2;
116117
int B4 = (_cal_AC4 * (X3 + 32768)) >> 15;
117-
int B7 = (UP - B3) * (50000 >> _mode);
118+
UINT16 B7 = (UP - B3) * (50000 >> _mode);
118119

119120
if (B7 < 0x80000000)
120121
p = (B7 * 2) / B4;
@@ -126,7 +127,9 @@ double BMP180::readPressure()
126127
X2 = (-7357 * p) >> 16;
127128

128129
p = p + ((X1 + X2 + 3791) >> 4);
129-
130+
#ifdef DEBUG
131+
cout << "pressure: " << std::dec << p << endl;
132+
#endif
130133
return p;
131134
}
132135

@@ -135,6 +138,9 @@ double BMP180::readAltitude(UINT16 seaLevelPressure)
135138
double altitude = 0;
136139
float pressure = readPressure();
137140
altitude = 44330.0 * (1.0 - pow(pressure / seaLevelPressure, 0.1903));
141+
#ifdef DEBUG
142+
cout << "altitude: " << std::dec << altitude << endl;
143+
#endif
138144
return altitude;
139145
}
140146

bmp180/bmp180.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class BMP180
3636
~BMP180();
3737

3838
double readTemperature();
39-
double readPressure();
39+
UINT16 readPressure();
4040
double readAltitude(UINT16 seaLevelPressure=101325);
4141
double readSeaLevelPressure();
4242

0 commit comments

Comments
 (0)