From dd1ec9920b8fd6b445cdcc943f53333990b34428 Mon Sep 17 00:00:00 2001 From: Chris--A Date: Tue, 17 Mar 2015 17:17:08 +1000 Subject: Added additional examples to EEPROM lib --- .../examples/eeprom_update/eeprom_update.ino | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 libraries/EEPROM/examples/eeprom_update/eeprom_update.ino (limited to 'libraries/EEPROM/examples/eeprom_update') diff --git a/libraries/EEPROM/examples/eeprom_update/eeprom_update.ino b/libraries/EEPROM/examples/eeprom_update/eeprom_update.ino new file mode 100644 index 0000000..e0e18d8 --- /dev/null +++ b/libraries/EEPROM/examples/eeprom_update/eeprom_update.ino @@ -0,0 +1,52 @@ +/*** + EEPROM Update method + + 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. + + If a value has not changed in the EEPROM, it is not overwritten + which would reduce the life span of the EEPROM unnecessarily. + + Released using MIT licence. + ***/ + +#include + +/** the current address in the EEPROM (i.e. which byte we're going to write to next) **/ +int addr = 0; + +void setup(){ /** EMpty 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; + + /*** + Update the particular EEPROM cell. + these values will remain there when the board is + turned off. + ***/ + EEPROM.update(addr, val); + + /*** + The function EEPROM.update(addr, val) is equivalent to the following: + + if( EEPROM.read(addr) != val ){ + 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); +} -- cgit v1.2.3-18-g5258