2 Byte Integer R/W to Arduino’s EEPROM
#include <EEPROM.h> //Needed to access the eeprom read write functions
//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()
{
}