Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 4:8cc86b207f25, committed 2017-04-28
- Comitter:
- vargham
- Date:
- Fri Apr 28 13:39:54 2017 +0000
- Parent:
- 3:9b5473254d82
- Commit message:
- Follow lib's API changes.
Changed in this revision
| EERAM.lib | Show annotated file Show diff for this revision Revisions of this file |
| eeram_main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 9b5473254d82 -r 8cc86b207f25 EERAM.lib --- a/EERAM.lib Thu Apr 27 17:56:56 2017 +0000 +++ b/EERAM.lib Fri Apr 28 13:39:54 2017 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/users/vargham/code/EERAM/#a869096d7a5d +https://developer.mbed.org/users/vargham/code/EERAM/#fd84e2f0d1de
diff -r 9b5473254d82 -r 8cc86b207f25 eeram_main.cpp
--- a/eeram_main.cpp Thu Apr 27 17:56:56 2017 +0000
+++ b/eeram_main.cpp Fri Apr 28 13:39:54 2017 +0000
@@ -25,7 +25,15 @@
#define PIN_I2C_SDA PC_9
#define PIN_I2C_SCL PA_8
-#define I2C_FREQUENCY 1000000
+//#define I2C_FREQUENCY 1000000
+#define I2C_FREQUENCY 400000
+
+struct StorageContainer
+{
+ float f;
+ int i;
+ short s[4];
+};
Serial serial(PA_9, PA_10); //Tx, Rx
I2C i2c(PIN_I2C_SDA, PIN_I2C_SCL); //SDA, SCL
@@ -74,16 +82,16 @@
char data[testDataLength];
//Write
- //eeram.fillMemory(0xFF);
+ eeram.fillMemory(0xFF);
fillTestData(data, 0x0, testDataLength);
- serial.printf("Write %d bytes to 0x0: %d\r\n", testDataLength, eeram.write(0x0, data, testDataLength));
+ serial.printf("Write %d bytes to 0x0: %d\r\n", testDataLength, eeram.writeBytes(0x0, data, testDataLength));
fillTestData(data, 0x50, testDataLength);
- serial.printf("Write %d bytes to 0x500: %d\r\n", testDataLength, eeram.write(0x500, data, testDataLength));
+ serial.printf("Write %d bytes to 0x500: %d\r\n", testDataLength, eeram.writeBytes(0x500, data, testDataLength));
fillTestData(data, 0x70, testDataLength);
- serial.printf("Write %d bytes to 0x700: %d\r\n", testDataLength, eeram.write(0x700, data, testDataLength));
+ serial.printf("Write %d bytes to 0x700: %d\r\n", testDataLength, eeram.writeBytes(0x700, data, testDataLength));
//Dump
serial.printf("Dump contents 0x0, 16\r\n");
@@ -98,7 +106,7 @@
//Read back
fillTestData(data, 0x0, testDataLength);
- serial.printf("Read back 16 bytes from 0x500: %d\r\n", eeram.read(0x500, data, testDataLength));
+ serial.printf("Read back 16 bytes from 0x500: %d\r\n", eeram.readBytes(0x500, data, testDataLength));
serial.printf("%.4X ", 0x500);
for (int i = 0; i < testDataLength; i++)
{
@@ -117,17 +125,17 @@
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 += eeram.write(addressPtr, &intToWrite);
+ addressPtr += eeram.write(addressPtr, &ushortToWrite);
+ addressPtr += eeram.write(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);
+ addressPtr += eeram.read(addressPtr, &intToRead);
+ addressPtr += eeram.read(addressPtr, &ushortToRead);
+ addressPtr += eeram.read(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);
@@ -143,11 +151,35 @@
float floatArrayToWrite[arraySize] = {1976.09f, 1979.04f, 2013.04f, 2015.11f};
for (int i = 0; i < arraySize; i++) serial.printf("%f ", floatArrayToWrite[i]);
serial.printf("\r\nRead:\r\n");
- eeram.writeArray(address, floatArrayToWrite, arraySize);
+ eeram.write(address, floatArrayToWrite, arraySize);
float floatArrayToRead[arraySize];
- eeram.readArray(address, floatArrayToRead, arraySize);
+ eeram.read(address, floatArrayToRead, arraySize);
for (int i = 0; i < arraySize; i++) serial.printf("%f ", floatArrayToRead[i]);
serial.printf("\r\n");
+
+ //Read and write custom types
+ serial.printf("# # #\r\nTest custom types\r\n");
+ const int customTypeStart = 0x200;
+ StorageContainer containerToWrite;
+ containerToWrite.f = 1976.09;
+ containerToWrite.i = 2015;
+ containerToWrite.s[0] = -1;
+ containerToWrite.s[1] = -20;
+ containerToWrite.s[2] = -30;
+ containerToWrite.s[3] = -40;
+ serial.printf("Write container's float: %f\r\n", containerToWrite.f);
+ serial.printf("Write container's int: %d\r\n", containerToWrite.i);
+ serial.printf("Write container's short array: ");
+ for (int i = 0; i < 4; i++) serial.printf("%d ", containerToWrite.s[i]);
+ serial.printf("\r\n");
+ eeram.write(customTypeStart, &containerToWrite);
+ StorageContainer containerToRead;
+ eeram.read(customTypeStart, &containerToRead);
+ serial.printf("Read container's float: %f\r\n", containerToRead.f);
+ serial.printf("Read container's int: %d\r\n", containerToRead.i);
+ serial.printf("Read container's short array: ");
+ for (int i = 0; i < 4; i++) serial.printf("%d ", containerToRead.s[i]);
+ serial.printf("\r\n");
}
void eeramRegisterTest()
@@ -161,8 +193,9 @@
serial.baud(460800);
i2c.frequency(I2C_FREQUENCY); //Hz
serial.printf("\r\nI2C EERAM example\r\n");
+ serial.printf("MBED version: %d.%d.%d\r\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION);
- //printI2C();
+ printI2C();
serial.printf("Is EERAM device ready?\r\n");
while (!eeram.isReady());
@@ -205,18 +238,19 @@
while (1)
{
char dataStore[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- eeram.write(0x100, dataStore, 16); //We can not wear EEPROM out, so it is ok to write data to the device frequently.
+ eeram.writeBytes(0x100, dataStore, 16); //We can not wear EEPROM out, so it is ok to write data to the device frequently.
wait(2.0);
char dataRead[16];
- eeram.read(0x100, dataRead, 16);
+ eeram.readBytes(0x100, dataRead, 16);
wait(2.0);
float floatToWrite = -1.976f;
const uint16_t address = 0x200;
- eeram.writeValue(address, &floatToWrite);
+ eeram.write(address, &floatToWrite);
wait(2.0);
float floatToRead = 0;
- eeram.readValue(address, &floatToWrite);
+ eeram.read(address, &floatToWrite);
wait(2.0);
}
}
-*/
+
+*/
\ No newline at end of file