Soyoon Kim
/
mbed_Barometer
Diff: Barometer.h
- Revision:
- 0:f6f6f699ab24
- Child:
- 1:b6a29c7aeaa9
diff -r 000000000000 -r f6f6f699ab24 Barometer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Barometer.h Wed Jun 29 12:12:24 2016 +0000 @@ -0,0 +1,39 @@ +#ifndef Barometer_H +#define Barometer_H +#include "mbed.h" + + +enum Barometer_oss { + Barometer_oss1 = 0, ///< ultra low power (1 time) + Barometer_oss2 = 1, ///< standard (2 times) + Barometer_oss4 = 2, ///< high resolution (4 times) + Barometer_oss8 = 3 ///< ultra high resolution (8 times) +}; + + +class Barometer { +public: + Barometer(PinName p_sda, PinName p_scl, Barometer_oss p_oss = Barometer_oss1); + Barometer(I2C& p_i2c, Barometer_oss p_oss = Barometer_oss1); + + float get_temperature(); + float get_pressure(); + void update(); + +protected: + void init(Barometer_oss); + unsigned short twi_readshort (int, int); + unsigned long twi_readlong (int, int); + void twi_writechar (int, int, int); + + I2C i2c; + float temperature; + float pressure; + +private: + + short ac1, ac2, ac3, b1, b2, mb, mc, md, oss; + unsigned short ac4, ac5, ac6; +}; + +#endif \ No newline at end of file