@@ -40,14 +40,40 @@ Adafruit_BME280::Adafruit_BME280(int8_t cspin, int8_t mosipin, int8_t misopin, i
40
40
@brief Initialise sensor with given parameters / settings
41
41
*/
42
42
/* *************************************************************************/
43
- bool Adafruit_BME280::begin (uint8_t addr)
43
+ bool Adafruit_BME280::begin (TwoWire *theWire)
44
+ {
45
+ _wire = theWire;
46
+ _i2caddr = BME280_ADDRESS;
47
+ return init ();
48
+ }
49
+
50
+ bool Adafruit_BME280::begin (uint8_t addr)
51
+ {
52
+ _i2caddr = addr;
53
+ _wire = &Wire;
54
+ return init ();
55
+ }
56
+
57
+ bool Adafruit_BME280::begin (uint8_t addr, TwoWire *theWire)
44
58
{
45
59
_i2caddr = addr;
60
+ _wire = theWire;
61
+ return init ();
62
+ }
46
63
64
+ bool Adafruit_BME280::begin (void )
65
+ {
66
+ _i2caddr = BME280_ADDRESS;
67
+ _wire = &Wire;
68
+ return init ();
69
+ }
70
+
71
+ bool Adafruit_BME280::init ()
72
+ {
47
73
// init I2C or SPI sensor interface
48
74
if (_cs == -1 ) {
49
75
// I2C
50
- Wire. begin ();
76
+ _wire -> begin ();
51
77
} else {
52
78
digitalWrite (_cs, HIGH);
53
79
pinMode (_cs, OUTPUT);
@@ -149,10 +175,10 @@ uint8_t Adafruit_BME280::spixfer(uint8_t x) {
149
175
/* *************************************************************************/
150
176
void Adafruit_BME280::write8 (byte reg, byte value) {
151
177
if (_cs == -1 ) {
152
- Wire. beginTransmission ((uint8_t )_i2caddr);
153
- Wire. write ((uint8_t )reg);
154
- Wire. write ((uint8_t )value);
155
- Wire. endTransmission ();
178
+ _wire -> beginTransmission ((uint8_t )_i2caddr);
179
+ _wire -> write ((uint8_t )reg);
180
+ _wire -> write ((uint8_t )value);
181
+ _wire -> endTransmission ();
156
182
} else {
157
183
if (_sck == -1 )
158
184
SPI.beginTransaction (SPISettings (500000 , MSBFIRST, SPI_MODE0));
@@ -175,11 +201,11 @@ uint8_t Adafruit_BME280::read8(byte reg) {
175
201
uint8_t value;
176
202
177
203
if (_cs == -1 ) {
178
- Wire. beginTransmission ((uint8_t )_i2caddr);
179
- Wire. write ((uint8_t )reg);
180
- Wire. endTransmission ();
181
- Wire. requestFrom ((uint8_t )_i2caddr, (byte)1 );
182
- value = Wire. read ();
204
+ _wire -> beginTransmission ((uint8_t )_i2caddr);
205
+ _wire -> write ((uint8_t )reg);
206
+ _wire -> endTransmission ();
207
+ _wire -> requestFrom ((uint8_t )_i2caddr, (byte)1 );
208
+ value = _wire -> read ();
183
209
} else {
184
210
if (_sck == -1 )
185
211
SPI.beginTransaction (SPISettings (500000 , MSBFIRST, SPI_MODE0));
@@ -204,11 +230,11 @@ uint16_t Adafruit_BME280::read16(byte reg)
204
230
uint16_t value;
205
231
206
232
if (_cs == -1 ) {
207
- Wire. beginTransmission ((uint8_t )_i2caddr);
208
- Wire. write ((uint8_t )reg);
209
- Wire. endTransmission ();
210
- Wire. requestFrom ((uint8_t )_i2caddr, (byte)2 );
211
- value = (Wire. read () << 8 ) | Wire. read ();
233
+ _wire -> beginTransmission ((uint8_t )_i2caddr);
234
+ _wire -> write ((uint8_t )reg);
235
+ _wire -> endTransmission ();
236
+ _wire -> requestFrom ((uint8_t )_i2caddr, (byte)2 );
237
+ value = (_wire -> read () << 8 ) | _wire -> read ();
212
238
} else {
213
239
if (_sck == -1 )
214
240
SPI.beginTransaction (SPISettings (500000 , MSBFIRST, SPI_MODE0));
@@ -267,16 +293,16 @@ uint32_t Adafruit_BME280::read24(byte reg)
267
293
uint32_t value;
268
294
269
295
if (_cs == -1 ) {
270
- Wire. beginTransmission ((uint8_t )_i2caddr);
271
- Wire. write ((uint8_t )reg);
272
- Wire. endTransmission ();
273
- Wire. requestFrom ((uint8_t )_i2caddr, (byte)3 );
296
+ _wire -> beginTransmission ((uint8_t )_i2caddr);
297
+ _wire -> write ((uint8_t )reg);
298
+ _wire -> endTransmission ();
299
+ _wire -> requestFrom ((uint8_t )_i2caddr, (byte)3 );
274
300
275
- value = Wire. read ();
301
+ value = _wire -> read ();
276
302
value <<= 8 ;
277
- value |= Wire. read ();
303
+ value |= _wire -> read ();
278
304
value <<= 8 ;
279
- value |= Wire. read ();
305
+ value |= _wire -> read ();
280
306
} else {
281
307
if (_sck == -1 )
282
308
SPI.beginTransaction (SPISettings (500000 , MSBFIRST, SPI_MODE0));
0 commit comments