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.
Fork of ou_mbed_eeprom by
Revision 2:47ee605d0830, committed 2018-06-19
- Comitter:
- poushen
- Date:
- Tue Jun 19 05:41:52 2018 +0000
- Parent:
- 1:2e18ad95d4ed
- Commit message:
- add code to demo eeprom access function
Changed in this revision
| eeprom.lib | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 2e18ad95d4ed -r 47ee605d0830 eeprom.lib --- a/eeprom.lib Sun Jun 17 06:52:12 2018 +0000 +++ b/eeprom.lib Tue Jun 19 05:41:52 2018 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/users/poushen/code/eeprom/#0c876c06b026 +https://os.mbed.com/users/poushen/code/eeprom/#8ddab67b62c3
diff -r 2e18ad95d4ed -r 47ee605d0830 main.cpp
--- a/main.cpp Sun Jun 17 06:52:12 2018 +0000
+++ b/main.cpp Tue Jun 19 05:41:52 2018 +0000
@@ -1,6 +1,8 @@
#include "mbed.h"
#include "eeprom.h"
+#define BUFFER_SIZE 64
+
DigitalOut myled(LED2);
// for LPCXpresso LPC1114 board
@@ -10,55 +12,61 @@
// ** serial port: 9600, 8, N, 1, N
// *************************************
//Serial pc(xp9, xp10);
-I2C i2c(dp5, dp27);
+I2C i2c(dp5, dp27); // for NXP LPC111x
eeprom epm(i2c);
-int main() {
+// import!!! must prefix 3 bytes for memory address
+uint8_t buffer[BUFFER_SIZE + 3];
+
+int main()
+{
myled = 1;
- printf("LPC1114 demo \r\n");
- i2c.frequency(1000 * 1000);
-
- uint8_t data[13] = { 0, 0, 0, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5};
-
- epm.page_write(12288, TWO_BYTES_ADDRESS, data, 10);
+ printf("LPC1114 demo.\n\r");
+
+ // -------- page write --------------------
+ for (int i=0; i<BUFFER_SIZE; i++)
+ buffer[i+3] = i; // for prefix 3 memory address
+
+ epm.page_write(12288, TWO_BYTES_ADDRESS, buffer, BUFFER_SIZE);
//wait(0.008);
epm.ack_polling();
-
+
+ // -------- current read ------------------
+ printf("below shold be 00 01 ... 3f\n\r");
epm.write_address(12288, TWO_BYTES_ADDRESS);
-
- for (int i=0; i< 64; i++) {
- printf("%.2x ", epm.current_read());
+
+ for (int i=0; i<BUFFER_SIZE; i++) {
+ printf("%.2x ", epm.current_read());
}
printf("\n\r");
- epm.write_address(13312, TWO_BYTES_ADDRESS);
+ // -------- byte write --------------------
+ epm.byte_write(12288, TWO_BYTES_ADDRESS, 0xAA);
+ epm.ack_polling();
- uint8_t buffer[64];
- epm.sequential_read(buffer, 64);
- for (int i=0; i<64; i++) {
- printf("%.2x ", buffer[i]);
+ // -------- sequential read ---------------
+ printf("below shold be aa 01 02 ... 3f\n\r");
+ epm.write_address(12288, TWO_BYTES_ADDRESS);
+
+ uint8_t data[BUFFER_SIZE];
+ epm.sequential_read(data, BUFFER_SIZE);
+ for (int i=0; i<BUFFER_SIZE; i++) {
+ printf("%.2x ", data[i]);
}
printf("\n\r");
-
+
+ // -------- byte write --------------------
+ epm.byte_write(12289, TWO_BYTES_ADDRESS, 0xBB);
+ epm.ack_polling();
+
+ // -------- random read -------------------
+ printf("below shold be aa bb 02 03 ... 3f\n\r");
epm.random_read(12288, TWO_BYTES_ADDRESS, buffer, 64);
for (int i=0; i<64; i++) {
printf("%.2x ", buffer[i]);
}
printf("\n\r");
-
+
myled = 0;
-
- while (1);
-/*
- while(1) {
- myled = 1;
- printf("led on\n");
- for (int i=0; i<10000; i++);
- //wait(1);
- myled = 0;
- printf("led off\n");
- for (int i=0; i<10000; i++);
- //wait(1);
- }
- */
+ while(1);
}
