/*** 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(){}