EEPROM Speichern echter Int-Zahlen anstelle von 0-255

Hallo,

ich wollte mal Fragen, bis her kann ich Problemlos in den EEPROM Werte von 0-255 Schreiben.

Wie könnte ich echte Integerwerte (z.B. Betriebsstunden in Sekunden - meine Aufgabe) schreiben und auslesen. Leider kann man bei der Adresse nur eine Addresse (Byte) angeben. Mir würde noch einfallen zur Not die einzelnen Zahlen mit XOR zu verknpüfen, aber das muss sicher noch einfacher gehen.

Danke :slight_smile:

2 Bytes sind ein (16-Bit) Int. Bastel dir ne funktion, die dir aus int->bin macht und anschließend bin->2xbyte.
Oder du nimmst einfach das hier: Arduino Playground - HomePage :slight_smile:

nochmal kurz gegoogelt - siehe da:

//This function will write a 2 byte integer to the eeprom at the specified address and address + 1
void EEPROMWriteInt(int p_address, int p_value)
	{
	byte lowByte = ((p_value >> 0) & 0xFF);
	byte highByte = ((p_value >> 8) & 0xFF);

	EEPROM.write(p_address, lowByte);
	EEPROM.write(p_address + 1, highByte);
	}

//This function will read a 2 byte integer from the eeprom at the specified address and address + 1
unsigned int EEPROMReadInt(int p_address)
	{
	byte lowByte = EEPROM.read(p_address);
	byte highByte = EEPROM.read(p_address + 1);

	return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00);
	}

void setup()
	{
	Serial.begin(9600);

	EEPROMWriteInt(0, 0xABCD);

	Serial.print("Read the following int at the eeprom address 0: ");
	Serial.println(EEPROMReadInt(0), HEX);
	}

void loop()
	{
	}

Danke an “A||SySt3msG0” aus dem internationalen Forum

Je nach Einsatzzweck könntest Du Dir auch ein struct anlegen und dort an Variablen und -typen reinstopfen was Du willst, und dann das komplette struct auf einen Satz lesen/schreiben.

Vielen Dank das hat mir alles sehr weitergeholfen :slight_smile:

Arduino kennt auch die Funktionen lowByte(), highByte() und word() die eine 2-Byte Variable zerlegen bzw zusammensetzen.
http://arduino.cc/en/Reference/LowByte
http://arduino.cc/en/Reference/HighByte
http://arduino.cc/en/Reference/WordCast

Grüße Uwe