Hi,
using a slightly modified version of the example eeprom read sketch I can read the full range of eeprom addresses (Nano 328P):
#include <EEPROM.h>
int a = 0;
int value;
void setup()
{
Serial.begin(9600);
for (a=0; a<1024; a++)
{
value = EEPROM.read(a);
Serial.print(a);
Serial.print("\t");
Serial.print(value);
Serial.println();
}
}
void loop()
{
}
Results:
1 3
2 233
3 3
4 255
5 255
6 255
.
.
.
1020 255
1021 255
1022 255
1023 255
However, if I use the same sketch and change the library to EEPROMex I get errors from address 511 onwards
#include <EEPROMex.h>
int a = 0;
int value;
void setup()
{
Serial.begin(9600);
for (a=0; a<1024; a++)
{
value = EEPROM.read(a);
Serial.print(a);
Serial.print("\t");
Serial.print(value);
Serial.println();
}
}
void loop()
{
}
Results:
.
.
.
509 255
510 255
511 255
Attempt to write outside of EEPROM memory
512 0
Attempt to write outside of EEPROM memory
513 0
.
.
.
Am I doing something wrong is there a problem with the EEPROMex library?
Is the EEPROMex library treating every address as 2 bytes?
What are the other recommendations for easily (novice friendly) reading and writing to eeprom; bytes, ints, longs and arrays of longs?