64 lines
1.7 KiB
C++
64 lines
1.7 KiB
C++
/*
|
|
EEPROM Write
|
|
|
|
Stores random values into the EEPROM.
|
|
These values will stay in the EEPROM when the board is
|
|
turned off and may be retrieved later by another sketch.
|
|
*/
|
|
|
|
#include "EEPROM.h"
|
|
|
|
// the current address in the EEPROM (i.e. which byte
|
|
// we're going to write to next)
|
|
int addr = 0;
|
|
#define EEPROM_SIZE 64
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
Serial.println("start...");
|
|
if (!EEPROM.begin(EEPROM_SIZE))
|
|
{
|
|
Serial.println("failed to initialise EEPROM"); delay(1000000);
|
|
}
|
|
Serial.println(" bytes read from Flash . Values are:");
|
|
for (int i = 0; i < EEPROM_SIZE; i++)
|
|
{
|
|
Serial.print(byte(EEPROM.read(i))); Serial.print(" ");
|
|
}
|
|
Serial.println();
|
|
Serial.println("writing random n. in memory");
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
// need to divide by 4 because analog inputs range from
|
|
// 0 to 1023 and each byte of the EEPROM can only hold a
|
|
// value from 0 to 255.
|
|
// int val = analogRead(10) / 4;
|
|
int val = byte(random(10020));
|
|
// write the value to the appropriate byte of the EEPROM.
|
|
// these values will remain there when the board is
|
|
// turned off.
|
|
EEPROM.write(addr, val);
|
|
Serial.print(val); Serial.print(" ");
|
|
// advance to the next address. there are 512 bytes in
|
|
// the EEPROM, so go back to 0 when we hit 512.
|
|
// save all changes to the flash.
|
|
addr = addr + 1;
|
|
if (addr == EEPROM_SIZE)
|
|
{
|
|
Serial.println();
|
|
addr = 0;
|
|
EEPROM.commit();
|
|
Serial.print(EEPROM_SIZE);
|
|
Serial.println(" bytes written on Flash . Values are:");
|
|
for (int i = 0; i < EEPROM_SIZE; i++)
|
|
{
|
|
Serial.print(byte(EEPROM.read(i))); Serial.print(" ");
|
|
}
|
|
Serial.println(); Serial.println("----------------------------------");
|
|
}
|
|
|
|
delay(100);
|
|
}
|