Skip to content

Commit b8747ed

Browse files
Merge pull request #37 from pbolduc/avoid-extra-begin-calls-for-bme
Avoid calling begin more than is required #36
2 parents 8c89f95 + 288ca80 commit b8747ed

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/SparkFunBME280.cpp

+13-7
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,10 @@ bool BME280::beginSPI(uint8_t csPin)
159159
settings.chipSelectPin = csPin;
160160
settings.commInterface = SPI_MODE;
161161

162-
if(begin() == 0x58) return(true); //Begin normal init with these settings. Should return chip ID of 0x58 for BMP
163-
if(begin() == 0x60) return(true); //Begin normal init with these settings. Should return chip ID of 0x60 for BME
162+
uint8_t chipID = begin();
163+
164+
if(chipID == 0x58) return(true); //Begin normal init with these settings. Should return chip ID of 0x58 for BMP
165+
if(chipID == 0x60) return(true); //Begin normal init with these settings. Should return chip ID of 0x60 for BME
164166
return(false);
165167
}
166168

@@ -171,10 +173,12 @@ bool BME280::beginI2C(TwoWire &wirePort)
171173
_wireType = HARD_WIRE;
172174

173175
settings.commInterface = I2C_MODE;
174-
175176
//settings.I2CAddress = 0x77; //We assume user has set the I2C address using setI2CAddress()
176-
if(begin() == 0x58) return(true); //Begin normal init with these settings. Should return chip ID of 0x58 for BMP
177-
if(begin() == 0x60) return(true); //Begin normal init with these settings. Should return chip ID of 0x60 for BME
177+
178+
uint8_t chipID = begin();
179+
180+
if(chipID == 0x58) return(true); //Begin normal init with these settings. Should return chip ID of 0x58 for BMP
181+
if(chipID == 0x60) return(true); //Begin normal init with these settings. Should return chip ID of 0x60 for BME
178182
return(false);
179183
}
180184

@@ -188,8 +192,10 @@ bool BME280::beginI2C(SoftwareWire& wirePort)
188192
settings.commInterface = I2C_MODE;
189193
//settings.I2CAddress = 0x77; //We assume user has set the I2C address using setI2CAddress()
190194

191-
if(begin() == 0x58) return(true); //Begin normal init with these settings. Should return chip ID of 0x58 for BMP
192-
if(begin() == 0x60) return(true); //Begin normal init with these settings. Should return chip ID of 0x60 for BME
195+
uint8_t chipID = begin();
196+
197+
if(chipID == 0x58) return(true); //Begin normal init with these settings. Should return chip ID of 0x58 for BMP
198+
if(chipID == 0x60) return(true); //Begin normal init with these settings. Should return chip ID of 0x60 for BME
193199
return(false);
194200
}
195201
#endif

0 commit comments

Comments
 (0)