a simple test program against eeprom class
Fork of ou_mbed_eeprom by
main.cpp@2:47ee605d0830, 2018-06-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |