aboutsummaryrefslogtreecommitdiff
path: root/libraries/EEPROM/examples/eeprom_update
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/EEPROM/examples/eeprom_update')
-rw-r--r--libraries/EEPROM/examples/eeprom_update/eeprom_update.ino36
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;
***/