modified to work with juston I2CX library for Nordic BLE, see http://developer.mbed.org/questions/5107/Arch-BLE-I2C-working/#answer5383 esp. the answer by Joris Aerts

Dependents:   Seed_Barometer_Sensor_custom_I2C_lib

Fork of BMP085 by Suga koubou

Committer:
grassel
Date:
Tue Nov 04 19:20:17 2014 +0000
Revision:
3:61eea911ad24
Parent:
2:5e2b1f3c0a6a
patched to work with custom I2CX i2c library, see http://developer.mbed.org/questions/5107/Arch-BLE-I2C-working/#answer5383 esp. the answer by Joris Aerts

Who changed what in which revision?

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