Example program for Microchip 47x04 and 47x16 EERAM devices.

Dependencies:   EERAM mbed-dev

Revision:
2:e7a7a5328184
Parent:
0:f7121193ff7e
Child:
3:9b5473254d82
--- a/eeram_main.cpp	Tue Apr 25 16:23:35 2017 +0000
+++ b/eeram_main.cpp	Thu Apr 27 13:27:13 2017 +0000
@@ -105,10 +105,41 @@
         serial.printf("%.2X ", data[i]);
     }
     serial.printf("\r\n");
+
+    //Read and write individual values
+    const uint16_t START_ADDRESS = 0x400;
+    uint16_t addressPtr = START_ADDRESS;
+    int intToWrite = -76324;
+    unsigned short ushortToWrite = 4395;
+    float floatToWrite = 0.1976f;
+    serial.printf("# # #\r\n");
+    serial.printf("Write individual values, start address = 0x%X\r\n", START_ADDRESS);
+    serial.printf("Int to write: %d\r\n", intToWrite);
+    serial.printf("Unsigned short to write: %d\r\n", ushortToWrite);
+    serial.printf("Float to write: %f\r\n", floatToWrite);
+    addressPtr += eeram.writeValue(addressPtr, &intToWrite);
+    addressPtr += eeram.writeValue(addressPtr, &ushortToWrite);
+    addressPtr += eeram.writeValue(addressPtr, &floatToWrite);
+
+    addressPtr = START_ADDRESS;
+    int intToRead = 0;
+    unsigned short ushortToRead = 0;
+    float floatToRead = 0.0;
+    addressPtr += eeram.readValue(addressPtr, &intToRead);
+    addressPtr += eeram.readValue(addressPtr, &ushortToRead);
+    addressPtr += eeram.readValue(addressPtr, &floatToRead);
+    serial.printf("Read back individual values\r\n");
+    serial.printf("Int to read: %d\r\n", intToRead);
+    serial.printf("Unsigned short to read: %d\r\n", ushortToRead);
+    serial.printf("Float to read: %f\r\n", floatToRead);
+    int length = addressPtr - START_ADDRESS + 6;
+    serial.printf("Dump %d bytes from 0x%X:\r\n", length, START_ADDRESS);
+    eeram.dump(serial, START_ADDRESS, length);
 }
 
 void eeramRegisterTest()
 {
+    serial.printf("# # #\r\n");
     eeram.dumpRegisters(serial);
 }
 
@@ -166,6 +197,13 @@
         char dataRead[16];
         eeram.read(0x100, dataRead, 16);
         wait(2.0);
+        float floatToWrite = -1.976f;
+        const uint16_t address = 0x200;
+        eeram.writeValue(address, &floatToWrite);
+        wait(2.0);
+        float floatToRead = 0;
+        eeram.readValue(address, &floatToWrite);
+        wait(2.0);
     }
 }
 */