a simple test program against eeprom class

Dependencies:   eeprom mbed

Fork of ou_mbed_eeprom by Poushen Ou

Committer:
poushen
Date:
Tue Jun 19 05:41:52 2018 +0000
Revision:
2:47ee605d0830
Parent:
0:ae0174689639
add code to demo eeprom access function

Who changed what in which revision?

UserRevisionLine numberNew contents of line
poushen 0:ae0174689639 1 #include "mbed.h"
poushen 0:ae0174689639 2 #include "eeprom.h"
poushen 0:ae0174689639 3
poushen 2:47ee605d0830 4 #define BUFFER_SIZE 64
poushen 2:47ee605d0830 5
poushen 0:ae0174689639 6 DigitalOut myled(LED2);
poushen 0:ae0174689639 7
poushen 0:ae0174689639 8 // for LPCXpresso LPC1114 board
poushen 0:ae0174689639 9 // UART TX: xp9, dp16
poushen 0:ae0174689639 10 // UART RX: xp10, dp15
poushen 0:ae0174689639 11 // *************************************
poushen 0:ae0174689639 12 // ** serial port: 9600, 8, N, 1, N
poushen 0:ae0174689639 13 // *************************************
poushen 0:ae0174689639 14 //Serial pc(xp9, xp10);
poushen 2:47ee605d0830 15 I2C i2c(dp5, dp27); // for NXP LPC111x
poushen 0:ae0174689639 16 eeprom epm(i2c);
poushen 0:ae0174689639 17
poushen 2:47ee605d0830 18 // import!!! must prefix 3 bytes for memory address
poushen 2:47ee605d0830 19 uint8_t buffer[BUFFER_SIZE + 3];
poushen 2:47ee605d0830 20
poushen 2:47ee605d0830 21 int main()
poushen 2:47ee605d0830 22 {
poushen 0:ae0174689639 23 myled = 1;
poushen 2:47ee605d0830 24 printf("LPC1114 demo.\n\r");
poushen 2:47ee605d0830 25
poushen 2:47ee605d0830 26 // -------- page write --------------------
poushen 2:47ee605d0830 27 for (int i=0; i<BUFFER_SIZE; i++)
poushen 2:47ee605d0830 28 buffer[i+3] = i; // for prefix 3 memory address
poushen 2:47ee605d0830 29
poushen 2:47ee605d0830 30 epm.page_write(12288, TWO_BYTES_ADDRESS, buffer, BUFFER_SIZE);
poushen 0:ae0174689639 31 //wait(0.008);
poushen 0:ae0174689639 32 epm.ack_polling();
poushen 2:47ee605d0830 33
poushen 2:47ee605d0830 34 // -------- current read ------------------
poushen 2:47ee605d0830 35 printf("below shold be 00 01 ... 3f\n\r");
poushen 0:ae0174689639 36 epm.write_address(12288, TWO_BYTES_ADDRESS);
poushen 2:47ee605d0830 37
poushen 2:47ee605d0830 38 for (int i=0; i<BUFFER_SIZE; i++) {
poushen 2:47ee605d0830 39 printf("%.2x ", epm.current_read());
poushen 0:ae0174689639 40 }
poushen 0:ae0174689639 41 printf("\n\r");
poushen 0:ae0174689639 42
poushen 2:47ee605d0830 43 // -------- byte write --------------------
poushen 2:47ee605d0830 44 epm.byte_write(12288, TWO_BYTES_ADDRESS, 0xAA);
poushen 2:47ee605d0830 45 epm.ack_polling();
poushen 0:ae0174689639 46
poushen 2:47ee605d0830 47 // -------- sequential read ---------------
poushen 2:47ee605d0830 48 printf("below shold be aa 01 02 ... 3f\n\r");
poushen 2:47ee605d0830 49 epm.write_address(12288, TWO_BYTES_ADDRESS);
poushen 2:47ee605d0830 50
poushen 2:47ee605d0830 51 uint8_t data[BUFFER_SIZE];
poushen 2:47ee605d0830 52 epm.sequential_read(data, BUFFER_SIZE);
poushen 2:47ee605d0830 53 for (int i=0; i<BUFFER_SIZE; i++) {
poushen 2:47ee605d0830 54 printf("%.2x ", data[i]);
poushen 0:ae0174689639 55 }
poushen 0:ae0174689639 56 printf("\n\r");
poushen 2:47ee605d0830 57
poushen 2:47ee605d0830 58 // -------- byte write --------------------
poushen 2:47ee605d0830 59 epm.byte_write(12289, TWO_BYTES_ADDRESS, 0xBB);
poushen 2:47ee605d0830 60 epm.ack_polling();
poushen 2:47ee605d0830 61
poushen 2:47ee605d0830 62 // -------- random read -------------------
poushen 2:47ee605d0830 63 printf("below shold be aa bb 02 03 ... 3f\n\r");
poushen 0:ae0174689639 64 epm.random_read(12288, TWO_BYTES_ADDRESS, buffer, 64);
poushen 0:ae0174689639 65 for (int i=0; i<64; i++) {
poushen 0:ae0174689639 66 printf("%.2x ", buffer[i]);
poushen 0:ae0174689639 67 }
poushen 0:ae0174689639 68 printf("\n\r");
poushen 2:47ee605d0830 69
poushen 0:ae0174689639 70 myled = 0;
poushen 2:47ee605d0830 71 while(1);
poushen 0:ae0174689639 72 }