Ciao gente,
ho un problema per definire la condizione che il numero che leggo la prima volta dalla EEPROM non sia quello che è quando non è mai stata scritta.
Quindi si suppone che sia tutti 0xff, se vergine.
Ma se provo a caricare un valore come questo programma, come può succedere che un un unsigned long sia evaluato come negativo ?
#include <EEPROM.h>
int address = 0;
unsigned long value;
void setup() {
Serial.begin(9600);
while (!Serial) {
}
}
void loop() {
value = EEPROM.read(address);
Serial.print(address);
Serial.print("\t");
Serial.print(value, DEC);
Serial.println();
if (value < 360000) Serial.println("Small");
address += 4;
if (address == EEPROM.length()) {
address = 0;
}
delay(500);
}
Io credo che ci sia questa condizione, altrimenti 2^32 non è minore di 360`000, salvo che sia signed
Inoltre il risultato non è un valore long, ma solo un byte. Forse sto sbagliando, ma non so quale errore sto commettendo.