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 --- .../EEPROM/examples/eeprom_get/eeprom_get.ino | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 libraries/EEPROM/examples/eeprom_get/eeprom_get.ino (limited to 'libraries/EEPROM/examples/eeprom_get/eeprom_get.ino') 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..58475fd --- /dev/null +++ b/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino @@ -0,0 +1,63 @@ +/*** + 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 + +void setup(){ + + float f = 0.00f; //Variable to store data read from EEPROM. + int eeAddress = 0; //Location of the IP address inside the class. + + Serial.begin( 9600 ); + 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 -- cgit v1.2.3-18-g5258 From 5da9792cd61b5ba9eed9fb80874edb52081d6232 Mon Sep 17 00:00:00 2001 From: Chris--A Date: Tue, 24 Mar 2015 13:58:01 +1000 Subject: Fixed EEPROM examples and added readme --- libraries/EEPROM/examples/eeprom_get/eeprom_get.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libraries/EEPROM/examples/eeprom_get/eeprom_get.ino') diff --git a/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino b/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino index 58475fd..dcd8678 100644 --- a/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino +++ b/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino @@ -20,7 +20,7 @@ void setup(){ float f = 0.00f; //Variable to store data read from EEPROM. - int eeAddress = 0; //Location of the IP address inside the class. + int eeAddress = 0; //EEPROM address to start reading from Serial.begin( 9600 ); Serial.print( "Read float from EEPROM: " ); -- cgit v1.2.3-18-g5258 From d8656b8c5249c9d06cd8ed96b2061759ab69b5bf Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Tue, 24 Mar 2015 10:20:00 +0100 Subject: EEPROM: examples: fix Serial for board Leonardo --- libraries/EEPROM/examples/eeprom_get/eeprom_get.ino | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libraries/EEPROM/examples/eeprom_get/eeprom_get.ino') diff --git a/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino b/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino index dcd8678..6620999 100644 --- a/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino +++ b/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino @@ -23,8 +23,11 @@ void setup(){ 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. -- cgit v1.2.3-18-g5258