Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of BMP085 by
BMP085.h@1:80e4c62baf09, 2010-12-13 (annotated)
- Committer:
- okini3939
- Date:
- Mon Dec 13 14:02:24 2010 +0000
- Revision:
- 1:80e4c62baf09
- Parent:
- 0:6245372b9179
- Child:
- 2:5e2b1f3c0a6a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 0:6245372b9179 | 1 | /* |
okini3939 | 0:6245372b9179 | 2 | * mbed library to use a Bosch Sensortec BMP085 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 | 1:80e4c62baf09 | 8 | * @brief mbed library to use a Bosch Sensortec BMP085 sensor |
okini3939 | 1:80e4c62baf09 | 9 | * barometric pressure sensor BMP085 (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" |
okini3939 | 0:6245372b9179 | 17 | |
okini3939 | 1:80e4c62baf09 | 18 | /** |
okini3939 | 1:80e4c62baf09 | 19 | * @brief over sampling setting |
okini3939 | 1:80e4c62baf09 | 20 | */ |
okini3939 | 0:6245372b9179 | 21 | enum BMP085_oss { |
okini3939 | 1:80e4c62baf09 | 22 | BMP085_oss1 = 0, ///< ultra low power (1 time) |
okini3939 | 1:80e4c62baf09 | 23 | BMP085_oss2 = 1, ///< standard (2 times) |
okini3939 | 1:80e4c62baf09 | 24 | BMP085_oss4 = 2, ///< high resolution (4 times) |
okini3939 | 1:80e4c62baf09 | 25 | BMP085_oss8 = 3 ///< ultra high resolution (8 times) |
okini3939 | 0:6245372b9179 | 26 | }; |
okini3939 | 0:6245372b9179 | 27 | |
okini3939 | 1:80e4c62baf09 | 28 | /** |
okini3939 | 1:80e4c62baf09 | 29 | * @brief BMP085 class |
okini3939 | 1:80e4c62baf09 | 30 | */ |
okini3939 | 0:6245372b9179 | 31 | class BMP085 : public Base { |
okini3939 | 0:6245372b9179 | 32 | public: |
okini3939 | 0:6245372b9179 | 33 | BMP085(PinName p_sda, PinName p_scl, BMP085_oss p_oss = BMP085_oss1); |
okini3939 | 0:6245372b9179 | 34 | BMP085(I2C& p_i2c, BMP085_oss p_oss = BMP085_oss1); |
okini3939 | 0:6245372b9179 | 35 | |
okini3939 | 0:6245372b9179 | 36 | float get_temperature(); |
okini3939 | 0:6245372b9179 | 37 | float get_pressure(); |
okini3939 | 0:6245372b9179 | 38 | void update(); |
okini3939 | 0:6245372b9179 | 39 | |
okini3939 | 0:6245372b9179 | 40 | protected: |
okini3939 | 0:6245372b9179 | 41 | void init(BMP085_oss); |
okini3939 | 0:6245372b9179 | 42 | unsigned short twi_readshort (int, int); |
okini3939 | 0:6245372b9179 | 43 | unsigned long twi_readlong (int, int); |
okini3939 | 0:6245372b9179 | 44 | void twi_writechar (int, int, int); |
okini3939 | 0:6245372b9179 | 45 | |
okini3939 | 0:6245372b9179 | 46 | I2C i2c; |
okini3939 | 0:6245372b9179 | 47 | float temperature; |
okini3939 | 0:6245372b9179 | 48 | float pressure; |
okini3939 | 0:6245372b9179 | 49 | |
okini3939 | 0:6245372b9179 | 50 | private: |
okini3939 | 0:6245372b9179 | 51 | |
okini3939 | 0:6245372b9179 | 52 | short ac1, ac2, ac3, b1, b2, mb, mc, md, oss; |
okini3939 | 0:6245372b9179 | 53 | unsigned short ac4, ac5, ac6; |
okini3939 | 0:6245372b9179 | 54 | }; |
okini3939 | 0:6245372b9179 | 55 | |
okini3939 | 0:6245372b9179 | 56 | #endif |