EEPROM test

Dependencies:   mbed EEPROM_lib

Revision:
0:7b9806067298
Child:
1:dddddafe7cde
Child:
3:ce61a30944b3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat May 22 15:48:03 2021 +0000
@@ -0,0 +1,145 @@
+#include "mbed.h"
+#include "EEPROM_lib.h"
+
+Serial pc(USBTX, USBRX, 115200);
+I2C i2c_bus(p28, p27);
+
+EEPROM_lib EEPROM(i2c_bus, 1);
+
+int main(){
+    //////////////////////////////////////////write
+    /*
+    EEPROM.setWriteAddr(1, 0, 0x00, 0x00);
+    int ptr, n = 0;
+    while(1){
+        while(1){
+            ptr = EEPROM.chargeBuff((int)n++);
+            if(ptr == 128){
+                EEPROM.writeBuff();
+                ptr = EEPROM.setNextPage();
+                break;
+            }
+        }
+        if(ptr == 0x01000000){
+            break;
+        }
+    }
+    
+    //////////////////////////////////////////read
+    
+    char data[128];
+    int num, block;
+    char ADDR_H, ADDR_L;
+    
+    num = 1;
+    block = 0;
+    ADDR_H = ADDR_L = 0x00;
+    
+    for(int i = 0; i < 1024; i ++){
+        switch(i){
+            case 512:
+            num = 1;
+            block = 1;
+            break;
+            
+            case 1024:
+            num = 2;
+            block = 0;
+            break;
+            
+            case 1536:
+            num = 2;
+            block = 1;
+            break;
+            
+            case 2048:
+            num = 3;
+            block = 0;
+            break;
+            
+            case 2560:
+            num = 3;
+            block = 1;
+            break;
+            
+            case 3072:
+            num = 4;
+            block = 0;
+            break;
+            
+            case 3584:
+            num = 4;
+            block = 1;
+            break;
+        }
+        
+        EEPROM.readMultiByte(num, block, ADDR_H, ADDR_L, data, 128);
+        for(int x = 0; x < 128; x ++){
+            pc.printf("%02x ", data[x]);
+        }
+        pc.printf("\r\n");
+        
+        if(ADDR_L == 0x00){
+            ADDR_L = 0x80;
+        }
+        else{
+            ADDR_L = 0x00;
+            ADDR_H ++;
+        }
+    }
+    */
+    /*
+    char data[128];
+    int num, block;
+    char ADDR_H, ADDR_L;
+    
+    num = 1;
+    block = 0;
+    ADDR_H = ADDR_L = 0x00;
+    
+    char a;
+    
+    for(int i = 0; i < 9; i ++){
+        a = EEPROM.readByte(num, block, ADDR_H, ADDR_L);
+        pc.printf("%02x ", a);
+        ADDR_L ++;
+    }
+    */
+    
+    EEPROM.setWriteAddr(1, 0, 0x00, 0x00);
+    int ptr, n = 0;
+
+    for(int j = 0; j < 2; j ++){
+        for(int k = 0; k < 128; k ++){
+            ptr = EEPROM.chargeBuff((int)k);
+            if(ptr == 128){
+                EEPROM.writeBuff();
+                ptr = EEPROM.setNextPage();
+            }
+        }
+    }
+    
+    char data[128];
+    int num, block;
+    char ADDR_H, ADDR_L;
+    
+    num = 1;
+    block = 0;
+    ADDR_H = ADDR_L = 0x00;
+    
+    for(int l = 0; l < 2; l ++){
+        EEPROM.readMultiByte(num, block, ADDR_H, ADDR_L, data, 128);
+        for(int x = 0; x < 128; x ++){
+            pc.printf("%02x ", data[x]);
+        }
+        pc.printf("\r\n");
+            
+        if(ADDR_L == 0x00){
+            ADDR_L = 0x80;
+        }
+        else{
+            ADDR_L = 0x00;
+            ADDR_H ++;
+        }
+    }
+}
\ No newline at end of file