Con la prima delle 2 routine sotto, salvo in eeprom un numero tra 0 e 25755, dividendo le centinaia dalle decine (max 255 per singolo indirizzo)
Quando vado a leggere con la seconda routine, mi trovo sempre e comunque entrambi gli indirizzi a 255, anche se in scrittura ho passato uno zero! Cosa sbaglio?
Grazie!
Prova a cambiare tipo di dati. Le funzioni legate alla lettura/scrittura su EEPROM trattano singoli byte ma tu passi numeri di tipo unsigned long che poi oltretutto converti a signed integer prima della scrittura.
Spezza semplicemente in byte alto/byte basso senza mettere nel mezzo divisioni e numeri in virgola mobile.
void e2prom_ore_write(unsigned int num){
EEPROM.write(Addr1, highByte(num));
EEPROM.write(Addr0, lowByte(num));
}
Presupponiamo che anche contaore sia unsigned int, quando vai a leggere devi fare solo: