diff options
author | Chris--A <chris@genx.biz> | 2015-03-17 17:17:08 +1000 |
---|---|---|
committer | Chris--A <chris@genx.biz> | 2015-03-17 17:17:08 +1000 |
commit | dd1ec9920b8fd6b445cdcc943f53333990b34428 (patch) | |
tree | 39b5eb049080a2ed61e773a537e02ec503ddef9a /libraries/EEPROM/examples/eeprom_update/eeprom_update.ino | |
parent | 46e810cf0743a7fb29d41c02c5ab6c2d9e50685b (diff) |
Added additional examples to EEPROM lib
Diffstat (limited to 'libraries/EEPROM/examples/eeprom_update/eeprom_update.ino')
-rw-r--r-- | libraries/EEPROM/examples/eeprom_update/eeprom_update.ino | 52 |
1 files changed, 52 insertions, 0 deletions
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 <EEPROM.h> + +/** 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); +} |