Fix bug with temperature measurement
This commit is contained in:
parent
36db04036c
commit
675fb4f771
@ -20,7 +20,6 @@ RTC_DATA_ATTR bool didConfigureTemperatureSensors = false;
|
||||
OneWireNg_CurrentPlatform ow(TEMPERATURE_SENSOR_PIN, TEMPERATURE_SENSOR_PARASITE_POWER);
|
||||
DSTherm sensorInterface = DSTherm(ow);
|
||||
ALLOC_ALIGNED uint8_t scratchpadBuffer[sizeof(DSTherm::Scratchpad)];
|
||||
DSTherm::Scratchpad *scratchpad;
|
||||
|
||||
struct Sensor {
|
||||
|
||||
@ -116,13 +115,17 @@ void clearFoundIndicatorForAllSensors() {
|
||||
}
|
||||
}
|
||||
|
||||
DSTherm::Scratchpad* getScratchpad() {
|
||||
return reinterpret_cast<DSTherm::Scratchpad*>(&scratchpadBuffer[0]);
|
||||
}
|
||||
|
||||
void temperatureConfigure() {
|
||||
if (didConfigureTemperatureSensors) {
|
||||
// Only determine and configure sensors once per power cycle
|
||||
return;
|
||||
}
|
||||
|
||||
scratchpad = reinterpret_cast<DSTherm::Scratchpad*>(&scratchpadBuffer[0]);
|
||||
DSTherm::Scratchpad* scratchpad = getScratchpad();
|
||||
|
||||
// Clear discovery flags
|
||||
clearFoundIndicatorForAllSensors();
|
||||
@ -182,6 +185,8 @@ void temperaturePerformUpdate(Temperature* temperatures) {
|
||||
// Convert temperature on all sensors connected
|
||||
sensorInterface.convertTempAll(DSTherm::SCAN_BUS, TEMPERATURE_SENSOR_PARASITE_POWER);
|
||||
|
||||
DSTherm::Scratchpad* scratchpad = getScratchpad();
|
||||
|
||||
// Read sensors one by one
|
||||
for (const auto& id: (OneWireNg&) ow) {
|
||||
uint8_t sensorIndex = getSensorIndex(id);
|
||||
|
Loading…
Reference in New Issue
Block a user