Sacado de la ayuda de CCS...
How do I write variables to EEPROM that are not a byte?
The following is an example of how to read and write a floating point number from/to EEPROM. The same concept may be used for structures, arrays or any other type.
n is an offset into the eeprom.
For floats you must increment it by 4.
For example, if the first float is at 0 the second one should be at 4 and the third at 8.
WRITE_FLOAT_EXT_EEPROM(long int n, float data) {
int i;
for (i = 0; i < 4; i++)
write_ext_eeprom(i + n, *(&data + i) ) ;
}
float READ_FLOAT_EXT_EEPROM(long int n) {
int i;
float data;
for (i = 0; i < 4; i++)
*(&data + i) = read_ext_eeprom(i + n);
return(data);
}
Los ejemplos son para escribir en EEPROM externa, pero solo cambiando la instruccion por la que escribe en EEPROM interna tienes la solucion que buscas...