baro

Committer:
gmatjuara
Date:
Sat Dec 14 04:19:18 2013 +0000
Revision:
0:669dfadf96c5
barometer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gmatjuara 0:669dfadf96c5 1 /*
gmatjuara 0:669dfadf96c5 2 * mbed library to use a Bosch Sensortec MS5611 sensor
gmatjuara 0:669dfadf96c5 3 * Copyright (c) 2010 Hiroshi Suga
gmatjuara 0:669dfadf96c5 4 * Released under the MIT License: http://mbed.org/license/mit
gmatjuara 0:669dfadf96c5 5 */
gmatjuara 0:669dfadf96c5 6
gmatjuara 0:669dfadf96c5 7 /** @file MS5611.h
gmatjuara 0:669dfadf96c5 8 * @brief mbed library to use a Bosch Sensortec MS5611 sensor
gmatjuara 0:669dfadf96c5 9 * barometric pressure sensor MS5611 (Bosch Sensortec)
gmatjuara 0:669dfadf96c5 10 * interface: I2C digital
gmatjuara 0:669dfadf96c5 11 */
gmatjuara 0:669dfadf96c5 12
gmatjuara 0:669dfadf96c5 13 #ifndef MS5611_H
gmatjuara 0:669dfadf96c5 14 #define MS5611_H
gmatjuara 0:669dfadf96c5 15
gmatjuara 0:669dfadf96c5 16 #include "mbed.h"
gmatjuara 0:669dfadf96c5 17
gmatjuara 0:669dfadf96c5 18 /**
gmatjuara 0:669dfadf96c5 19 * @brief over sampling setting
gmatjuara 0:669dfadf96c5 20 */
gmatjuara 0:669dfadf96c5 21 enum MS5611_oss {
gmatjuara 0:669dfadf96c5 22 MS5611_oss1 = 0, ///< ultra low power (1 time)
gmatjuara 0:669dfadf96c5 23 MS5611_oss2 = 1, ///< standard (2 times)
gmatjuara 0:669dfadf96c5 24 MS5611_oss4 = 2, ///< high resolution (4 times)
gmatjuara 0:669dfadf96c5 25 MS5611_oss8 = 3 ///< ultra high resolution (8 times)
gmatjuara 0:669dfadf96c5 26 };
gmatjuara 0:669dfadf96c5 27
gmatjuara 0:669dfadf96c5 28 /**
gmatjuara 0:669dfadf96c5 29 * @brief MS5611 class
gmatjuara 0:669dfadf96c5 30 */
gmatjuara 0:669dfadf96c5 31 class MS5611
gmatjuara 0:669dfadf96c5 32 {
gmatjuara 0:669dfadf96c5 33 public:
gmatjuara 0:669dfadf96c5 34 MS5611(PinName p_sda, PinName p_scl, MS5611_oss p_oss = MS5611_oss1);
gmatjuara 0:669dfadf96c5 35 MS5611(I2C& p_i2c, MS5611_oss p_oss = MS5611_oss1);
gmatjuara 0:669dfadf96c5 36
gmatjuara 0:669dfadf96c5 37 float get_temperature();
gmatjuara 0:669dfadf96c5 38 float get_pressure();
gmatjuara 0:669dfadf96c5 39 void update();
gmatjuara 0:669dfadf96c5 40
gmatjuara 0:669dfadf96c5 41 protected:
gmatjuara 0:669dfadf96c5 42 void init(MS5611_oss);
gmatjuara 0:669dfadf96c5 43 unsigned short twi_readshort (int, int);
gmatjuara 0:669dfadf96c5 44 unsigned long twi_readlong (int, int);
gmatjuara 0:669dfadf96c5 45 void twi_writechar (int, int, int);
gmatjuara 0:669dfadf96c5 46
gmatjuara 0:669dfadf96c5 47 I2C i2c;
gmatjuara 0:669dfadf96c5 48 float temperature;
gmatjuara 0:669dfadf96c5 49 float pressure;
gmatjuara 0:669dfadf96c5 50
gmatjuara 0:669dfadf96c5 51 private:
gmatjuara 0:669dfadf96c5 52
gmatjuara 0:669dfadf96c5 53 short ac1, ac2, ac3, b1, b2, mb, mc, md, oss;
gmatjuara 0:669dfadf96c5 54 unsigned short ac4, ac5, ac6;
gmatjuara 0:669dfadf96c5 55 };
gmatjuara 0:669dfadf96c5 56
gmatjuara 0:669dfadf96c5 57 #endif