Version du programme présentée a Clermont

Dependencies:   SHTx mbed BMP085

Committer:
projetmeteo3
Date:
Sat Mar 24 09:51:56 2012 +0000
Revision:
0:eb2609ff92d2
V. Jury

Who changed what in which revision?

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