Hi,
I'm not much experienced with C...
Generally I'd avoid to store "float" values in EEPROM. I'd rather use integer.
This does not mean that in your code you can wirk only with integer temperature offset (steps of 1),
You may use two 8 bit values so you are able to calibrate for -128 .... +127, with resolution of 0.004°C
* HIGH byte, integer value, as integer degree
* LOW byte integer value, but represented as 1/256 degree per LSB..
***
But if you want to use float, then you may do this:
A float usually is a 32bit value = 4 bytes.
So you may fool C by treating the "float" as an array of 4 bytes.
Write a function that expects a pointer to an (4 byte) array.
It takes byte by byte and stores it into the EEPROM.
If you now call this function, but pass the pointer to your float...
(The compiler will issue a warning you may ignore)
Then your function will treat the float just as 4 bytes and store them into the EEPROM.
There will be better solutions ... but this is a workaround that I could use in my limited knowledge of C and its available library functions.
******
Klaus