From 42db4942ddea9589ec298ecfd2cd91b40a724a9c Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Fri, 4 May 2007 21:53:23 +0000 Subject: [PATCH] Adding EEPROM library examples. --- .../examples/eeprom_clear/eeprom_clear.pde | 21 ++++++++++ .../examples/eeprom_read/eeprom_read.pde | 38 +++++++++++++++++++ .../examples/eeprom_write/eeprom_write.pde | 38 +++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 targets/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde create mode 100644 targets/libraries/EEPROM/examples/eeprom_read/eeprom_read.pde create mode 100644 targets/libraries/EEPROM/examples/eeprom_write/eeprom_write.pde diff --git a/targets/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde b/targets/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde new file mode 100644 index 000000000..36af68e2a --- /dev/null +++ b/targets/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde @@ -0,0 +1,21 @@ +/* + * EEPROM Clear + * + * Sets all of the bytes of the EEPROM to 0. + */ + +#include + +void setup() +{ + // write a 0 to all 512 bytes of the EEPROM + for (int i = 0; i < 512; i++) + EEPROM.write(i, 0); + + // turn the LED on when we're done + digitalWrite(13, HIGH); +} + +void loop() +{ +} diff --git a/targets/libraries/EEPROM/examples/eeprom_read/eeprom_read.pde b/targets/libraries/EEPROM/examples/eeprom_read/eeprom_read.pde new file mode 100644 index 000000000..2e30708fc --- /dev/null +++ b/targets/libraries/EEPROM/examples/eeprom_read/eeprom_read.pde @@ -0,0 +1,38 @@ +/* + * EEPROM Read + * + * Reads the value of each byte of the EEPROM and prints it + * to the computer. + */ + +#include + +// start reading from the first byte (address 0) of the EEPROM +int address = 0; +byte value; + +void setup() +{ + Serial.begin(9600); +} + +void loop() +{ + // read a byte from the current address of the EEPROM + value = EEPROM.read(address); + + Serial.print(address); + Serial.print("\t"); + Serial.print(value, DEC); + Serial.println(); + + // advance to the next address of the EEPROM + address = address + 1; + + // there are only 512 bytes of EEPROM, from 0 to 511, so if we're + // on address 512, wrap around to address 0 + if (address == 512) + address = 0; + + delay(500); +} diff --git a/targets/libraries/EEPROM/examples/eeprom_write/eeprom_write.pde b/targets/libraries/EEPROM/examples/eeprom_write/eeprom_write.pde new file mode 100644 index 000000000..ae7c57ebd --- /dev/null +++ b/targets/libraries/EEPROM/examples/eeprom_write/eeprom_write.pde @@ -0,0 +1,38 @@ +/* + * EEPROM Write + * + * Stores values read from analog input 0 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 + +// the current address in the EEPROM (i.e. which byte +// we're going to write to next) +int addr = 0; + +void setup() +{ +} + +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(0) / 4; + + // 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); + + // advance to the next address. there are 512 bytes in + // the EEPROM, so go back to 0 when we hit 512. + addr = addr + 1; + if (addr == 512) + addr = 0; + + delay(100); +}