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@3:9c7696c84807, 2015-05-25 (annotated)
- Committer:
- whatnick
- Date:
- Mon May 25 02:50:46 2015 +0000
- Revision:
- 3:9c7696c84807
- Parent:
- 2:5e2b1f3c0a6a
Device support
Who changed what in which revision?
User | Revision | Line number | New 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" |
okini3939 | 0:6245372b9179 | 17 | |
whatnick | 3:9c7696c84807 | 18 | /* |
whatnick | 3:9c7696c84807 | 19 | * @brief Pressure at sea level |
whatnick | 3:9c7696c84807 | 20 | */ |
whatnick | 3:9c7696c84807 | 21 | #define SEA_PRES 1013.25f |
whatnick | 3:9c7696c84807 | 22 | |
okini3939 | 1:80e4c62baf09 | 23 | /** |
okini3939 | 1:80e4c62baf09 | 24 | * @brief over sampling setting |
okini3939 | 1:80e4c62baf09 | 25 | */ |
okini3939 | 0:6245372b9179 | 26 | enum BMP085_oss { |
okini3939 | 1:80e4c62baf09 | 27 | BMP085_oss1 = 0, ///< ultra low power (1 time) |
okini3939 | 1:80e4c62baf09 | 28 | BMP085_oss2 = 1, ///< standard (2 times) |
okini3939 | 1:80e4c62baf09 | 29 | BMP085_oss4 = 2, ///< high resolution (4 times) |
okini3939 | 1:80e4c62baf09 | 30 | BMP085_oss8 = 3 ///< ultra high resolution (8 times) |
okini3939 | 0:6245372b9179 | 31 | }; |
okini3939 | 0:6245372b9179 | 32 | |
okini3939 | 1:80e4c62baf09 | 33 | /** |
okini3939 | 1:80e4c62baf09 | 34 | * @brief BMP085 class |
okini3939 | 1:80e4c62baf09 | 35 | */ |
okini3939 | 2:5e2b1f3c0a6a | 36 | class BMP085 { |
okini3939 | 0:6245372b9179 | 37 | public: |
okini3939 | 0:6245372b9179 | 38 | BMP085(PinName p_sda, PinName p_scl, BMP085_oss p_oss = BMP085_oss1); |
okini3939 | 0:6245372b9179 | 39 | BMP085(I2C& p_i2c, BMP085_oss p_oss = BMP085_oss1); |
okini3939 | 0:6245372b9179 | 40 | |
okini3939 | 0:6245372b9179 | 41 | float get_temperature(); |
okini3939 | 0:6245372b9179 | 42 | float get_pressure(); |
okini3939 | 0:6245372b9179 | 43 | void update(); |
okini3939 | 0:6245372b9179 | 44 | |
okini3939 | 0:6245372b9179 | 45 | protected: |
okini3939 | 0:6245372b9179 | 46 | void init(BMP085_oss); |
okini3939 | 0:6245372b9179 | 47 | unsigned short twi_readshort (int, int); |
okini3939 | 0:6245372b9179 | 48 | unsigned long twi_readlong (int, int); |
okini3939 | 0:6245372b9179 | 49 | void twi_writechar (int, int, int); |
okini3939 | 0:6245372b9179 | 50 | |
okini3939 | 0:6245372b9179 | 51 | I2C i2c; |
okini3939 | 0:6245372b9179 | 52 | float temperature; |
okini3939 | 0:6245372b9179 | 53 | float pressure; |
okini3939 | 0:6245372b9179 | 54 | |
okini3939 | 0:6245372b9179 | 55 | private: |
okini3939 | 0:6245372b9179 | 56 | |
okini3939 | 0:6245372b9179 | 57 | short ac1, ac2, ac3, b1, b2, mb, mc, md, oss; |
okini3939 | 0:6245372b9179 | 58 | unsigned short ac4, ac5, ac6; |
okini3939 | 0:6245372b9179 | 59 | }; |
okini3939 | 0:6245372b9179 | 60 | |
okini3939 | 0:6245372b9179 | 61 | #endif |