Nick,
I'm confused of your comments.
85 °C is in my expected operating range, and if TI has decided to signal an error or whatever state by sending a default temperature of 85 °C, I need to do something for it. Of course I want my software and meters to react this, and I can't make them react to 85.
I haven't seen values like this but I want my things to work sound and proof when they are not on my desk anymore. I have no FOTA arrangement for the shipped thing :-(.
I'm using ESP8266, and it will boot up in loops all it's life, and I have no slightest idea what happens in I/O and external 3 v during that. Hopefully I don't need to. I'm using three-wire connection.
Library version used is #define DALLASTEMPLIBVERSION "3.7.7", hopefully that works.
Warming or cooling the sensors somewhere outside the operating range was an idea of putting a correct suitable value to registers without calculating it backwars (maybe wrong).
Actually it helped me a bit that after crosschecking all my sensors are of type #define DS18B20MODEL 0x28, so according to my current (volatile) understanding by looking at DallasTemperature::calculateTemperature() -function it holds the temperature in scratchPad[TEMP_MSB] and scratchPad[TEMP_MSB] only, so plain
int16_t fpTemperature =
(((int16_t) scratchPad[TEMP_MSB]) << 11) |
(((int16_t) scratchPad[TEMP_LSB]) << 3);
should apply.
How do I code here for example 125, it's not too clear to me.
EDIT: actually in datasheet there is fortunately couple of raw value example values, and 125 is presented there.
Still I'm confused of the resolutions (mine is 12 by default) and shiftings I need to do with my desired default temperature.
I was also worried if I need to calculate CRC, but I think _wire->write(COPYSCRATCH, parasite) in ::writeScratchPad takes care of it.
Hopefully we get in tune with this.