diff options
Diffstat (limited to 'libraries/EEPROM/examples/eeprom_update')
-rw-r--r-- | libraries/EEPROM/examples/eeprom_update/eeprom_update.ino | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/libraries/EEPROM/examples/eeprom_update/eeprom_update.ino b/libraries/EEPROM/examples/eeprom_update/eeprom_update.ino index 831056f..5e3db5b 100644 --- a/libraries/EEPROM/examples/eeprom_update/eeprom_update.ino +++ b/libraries/EEPROM/examples/eeprom_update/eeprom_update.ino @@ -1,13 +1,13 @@ /*** 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. ***/ @@ -16,10 +16,11 @@ /** the current address in the EEPROM (i.e. which byte we're going to write to next) **/ int address = 0; -void setup(){ /** EMpty setup **/ } +void setup() { + /** EMpty setup **/ +} -void loop() -{ +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 @@ -33,35 +34,36 @@ void loop() turned off. ***/ EEPROM.update(address, val); - + /*** The function EEPROM.update(address, val) is equivalent to the following: - + if( EEPROM.read(address) != val ){ EEPROM.write(address, val); } ***/ - + /*** - Advance to the next address, when at the end restart at the beginning. - + Advance to the next address, when at the end restart at the beginning. + Larger AVR processors have larger EEPROM sizes, E.g: - Arduno Duemilanove: 512b EEPROM storage. - Arduino Uno: 1kb EEPROM storage. - Arduino Mega: 4kb EEPROM storage. - + Rather than hard-coding the length, you should use the pre-provided length function. - This will make your code portable to all AVR processors. + This will make your code portable to all AVR processors. ***/ address = address + 1; - if(address == EEPROM.length()) + if (address == EEPROM.length()) { address = 0; - + } + /*** - As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an + As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an EEPROM address is also doable by a bitwise and of the length - 1. - + ++address &= EEPROM.length() - 1; ***/ |