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_pointer/eeprom_pointer.ino | |
parent | 46e810cf0743a7fb29d41c02c5ab6c2d9e50685b (diff) |
Added additional examples to EEPROM lib
Diffstat (limited to 'libraries/EEPROM/examples/eeprom_pointer/eeprom_pointer.ino')
-rw-r--r-- | libraries/EEPROM/examples/eeprom_pointer/eeprom_pointer.ino | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/libraries/EEPROM/examples/eeprom_pointer/eeprom_pointer.ino b/libraries/EEPROM/examples/eeprom_pointer/eeprom_pointer.ino new file mode 100644 index 0000000..b56b681 --- /dev/null +++ b/libraries/EEPROM/examples/eeprom_pointer/eeprom_pointer.ino @@ -0,0 +1,74 @@ +/*** + eeprom_pointer example. + + This example shows how the built-in EEPtr + object can be used to manipulate the EEPROM + using standard pointer arithmetic. + + Running this sketch is not necessary, this is + simply highlighting certain programming methods. + + Written by Christopher Andrews 2015 + Released under MIT licence. +***/ + +#include <EEPROM.h> + +void setup() { + + Serial.begin(9600); + + /*** + In this example, we will iterate forward over the EEPROM, + starting at the 10th cell (remember indices are zero based). + ***/ + + EEPtr ptr = 9; + + //Rather than hard coding a length, we can use the provided .length() function. + + while( ptr < EEPROM.length() ){ + + Serial.print( *ptr, HEX ); //Print out hex value of the EEPROM cell pointed to by 'ptr' + Serial.print( ", " ); //Separate values with a comma. + ptr++; //Move to next cell + } + + /*** + In this example, we will iterate backwards over the EEPROM, + starting at the last cell. + ***/ + + ptr = EEPROM.length() - 1; + + do{ + + Serial.print( *ptr, HEX ); + Serial.print( ", " ); + + }while( ptr-- ); //When the pointer reaches zero the loop will end as zero is considered 'false'. + + + /*** + And just for clarity, the loop below is an equivalent implementation + of the C++11 ranged for loop. + ***/ + + for( EEPtr ptr = EEPROM.begin() ; item != EEPROM.end() ; ++item ){ + Serial.print( *ptr, HEX ); + Serial.print( ", " ); + } + + /*** + The actual C++11 version: + + for( auto ptr : EEPROM ){ + Serial.print( *ptr, HEX ); + Serial.print( ", " ); + } + ***/ + + +} + +void loop(){}
\ No newline at end of file |