a fastyx, esa es la libreria....
ojo yo no he probado esa libreria, las veces que he tenido que guardar o leer datos tipo float en la eeprom lo he hecho con estas dos rutinas hechas a medida:
void leer(int32&variable,byte base){ //Lee 4 posiciones de la eeprom
byte bajo,medio,alto,M_alto; //y las convierte en un valor de
bajo = read_eeprom(base+0); // 32Bits
medio = read_eeprom(base+1);
alto = read_eeprom(base+2);
m_alto = read_eeprom(base+3);
variable = Make32(m_alto,alto,medio,bajo);
}
void guardar(int32 variable,byte base){ //Guarda una variable de 32Bit
byte dato; //en la memoria eeprom
dato=Make8(variable,0);
write_eeprom(base+0,dato);
dato=Make8(variable,1);
write_eeprom(base+1,dato);
dato=Make8(variable,2);
write_eeprom(base+2,dato);
dato=Make8(variable,3);
write_eeprom(base+3,dato);
}
ejemplo de uso:
guardar(valor,0);
donde valor es una variable float y 0 la direccion donde se comienzan a guardar los 4 bytes que conforman la variable valor ( float = 32 bits = 4 bytes)
leer(valor,0); lee 4 bytes de la eeprom comenzando en la direccion 0 y los almacena en la variable "valor" que es un float.
Al amigo 10f206 le comento que he usado estas dos rutinas intensamente y jamas me han grabado nada errado y como podras ver, no hay ningun tiempo de espera entre grabaciones, a menos que la instruccion Make8 se tarde los 25milisegundos que mensionas, de todas formas tambien he usado este segmento de codigo en un programa y siempre me ha funcionado perfecto...
IF (Indice==7){
direccion=0;
forma_dir(Programa,direccion);
write_eeprom(direccion,Dia_p);
write_eeprom(direccion+1,H_ini);
write_eeprom(direccion+2,M_ini);
write_eeprom(direccion+3,H_fin);
write_eeprom(direccion+4,M_fin);
write_eeprom(direccion+5,esquema_Tiempos);
write_eeprom(direccion+6,esquema_luces);
indice=1;
aqui no hay espera de ningun tipo..
Suerte chicos..