diff --git a/mbed_bme680.cpp b/mbed_bme680.cpp index 9fe8dc0..5c6a8f2 100644 --- a/mbed_bme680.cpp +++ b/mbed_bme680.cpp @@ -1,10 +1,11 @@ #include "mbed_bme680.h" -BME680::BME680() { - BME680(BME680_DEFAULT_ADDRESS); +BME680::BME680(PinName sda, PinName scl) { + BME680(BME680_DEFAULT_ADDRESS, sda, scl); } -BME680::BME680(uint8_t adr) { +BME680::BME680(uint8_t adr, PinName sda, PinName scl) { + i2c(sda, scl); _filterEnabled = _tempEnabled = _humEnabled = _presEnabled = _gasEnabled = false; _adr = adr; } @@ -333,7 +334,7 @@ int8_t BME680::i2c_write(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, ui void BME680::delay_msec(uint32_t ms) { log(" * wait %d ms ... \r\n", ms); - wait_ms(ms); + ThisThread::sleep_for(std::chrono::milliseconds(ms)); } void BME680::log(const char *format, ...) { @@ -343,4 +344,4 @@ void BME680::log(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); #endif -} \ No newline at end of file +} diff --git a/mbed_bme680.h b/mbed_bme680.h index ac14147..7821552 100644 --- a/mbed_bme680.h +++ b/mbed_bme680.h @@ -7,7 +7,6 @@ #define BME680_DEFAULT_ADDRESS (0x77 << 1) // The default I2C address (shifted for MBed 8 bit address) //#define BME680_DEBUG_MODE // Use this for enhance debug logs for I2C and more. -extern I2C i2c; /** * BME680 Class for I2C usage. @@ -15,9 +14,9 @@ extern I2C i2c; */ class BME680 { public: - BME680(); + BME680(PinName sda, PinName scl); - BME680(uint8_t adr); + BME680(uint8_t adr, PinName sda, PinName scl); bool begin(); @@ -49,6 +48,7 @@ class BME680 { float getGasResistance(); private: + I2C i2c; bool _filterEnabled, _tempEnabled, _humEnabled, _presEnabled, _gasEnabled; int32_t _sensorID; struct bme680_dev gas_sensor; @@ -65,4 +65,4 @@ class BME680 { static void delay_msec(uint32_t ms); }; -#endif \ No newline at end of file +#endif