aboutsummaryrefslogtreecommitdiff
path: root/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino
diff options
context:
space:
mode:
authorMartino Facchin <facchinm@users.noreply.github.com>2015-03-24 09:24:00 +0000
committerMartino Facchin <facchinm@users.noreply.github.com>2015-03-24 09:24:00 +0000
commitf2debfa2555fe26f72832378d3fd7e78fe881e0c (patch)
tree56df9b9963f902cd9565eb4708cf3ff2dff22588 /libraries/EEPROM/examples/eeprom_get/eeprom_get.ino
parent8fcf5c94067a052c2c7ead3c2ebcd1381ed37888 (diff)
parentd8656b8c5249c9d06cd8ed96b2061759ab69b5bf (diff)
Merge pull request #2812 from facchinm/test_pr2794
EEPROM library V2
Diffstat (limited to 'libraries/EEPROM/examples/eeprom_get/eeprom_get.ino')
-rw-r--r--libraries/EEPROM/examples/eeprom_get/eeprom_get.ino66
1 files changed, 66 insertions, 0 deletions
diff --git a/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino b/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino
new file mode 100644
index 0000000..6620999
--- /dev/null
+++ b/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino
@@ -0,0 +1,66 @@
+/***
+ eeprom_get example.
+
+ This shows how to use the EEPROM.get() method.
+
+ To pre-set the EEPROM data, run the example sketch eeprom_put.
+ This sketch will run without it, however, the values shown
+ will be shown from what ever is already on the EEPROM.
+
+ This may cause the serial object to print out a large string
+ of garbage if there is no null character inside one of the strings
+ loaded.
+
+ Written by Christopher Andrews 2015
+ Released under MIT licence.
+***/
+
+#include <EEPROM.h>
+
+void setup(){
+
+ float f = 0.00f; //Variable to store data read from EEPROM.
+ int eeAddress = 0; //EEPROM address to start reading from
+
+ Serial.begin( 9600 );
+ while (!Serial) {
+ ; // wait for serial port to connect. Needed for Leonardo only
+ }
+ Serial.print( "Read float from EEPROM: " );
+
+ //Get the float data from the EEPROM at position 'eeAddress'
+ EEPROM.get( eeAddress, f );
+ Serial.println( f, 3 ); //This may print 'ovf, nan' if the data inside the EEPROM is not a valid float.
+
+ /***
+ As get also returns a reference to 'f', you can use it inline.
+ E.g: Serial.print( EEPROM.get( eeAddress, f ) );
+ ***/
+
+ /***
+ Get can be used with custom structures too.
+ I have separated this into an extra function.
+ ***/
+
+ secondTest(); //Run the next test.
+}
+
+struct MyObject{
+ float field1;
+ byte field2;
+ char name[10];
+};
+
+void secondTest(){
+ int eeAddress = sizeof(float); //Move address to the next byte after float 'f'.
+
+ MyObject customVar; //Variable to store custom object read from EEPROM.
+ EEPROM.get( eeAddress, customVar );
+
+ Serial.println( "Read custom object from EEPROM: " );
+ Serial.println( customVar.field1 );
+ Serial.println( customVar.field2 );
+ Serial.println( customVar.name );
+}
+
+void loop(){ /* Empty loop */ } \ No newline at end of file