test capteurs BMP085 météo

Dependencies:   mbed

Committer:
bouaziz
Date:
Fri Oct 14 18:44:39 2011 +0000
Revision:
0:ad2afb285975
v1

Who changed what in which revision?

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