// Test the writings and readings of EEPROMs // Do comment out those unused constants // This test will overwrite the contents of EEPROM! #define E2PROM 24 // 24C02 //#define E2PROM 93 // 93C56 #define MAX_ADDR 255 // addresses 0..255 #define MAX_DATA 256 // data ranges 0..MAX_DATA-1 main() { int d, addr; d = 0; for(addr=0; addr <= MAX_ADDR; addr++) { writei('d', d, 100); writem(E2PROM, addr, d); // write data d++; d %= MAX_DATA; // keep data value in 0..MAX_DATA-1 } writes("read back", 1000); d = 0; for(addr=0; addr <= MAX_ADDR; addr++) { if(readm(E2PROM, addr) == d) // read back and verify it writei('d', d, 100); else writei('d', 10000+addr, 1000); // add 10000 to show error addr d++; d %= MAX_DATA; // keep data value in 0..MAX_DATA-1 } writes("test end", 3000); }