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_pointer/eeprom_pointer.ino | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 libraries/EEPROM/examples/eeprom_pointer/eeprom_pointer.ino (limited to 'libraries/EEPROM/examples/eeprom_pointer') 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 + +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 -- cgit v1.2.3-18-g5258