Sameera Nawarathne
/
EEPROM_MY
EEPRoM
main.cpp@0:770fea48cb00, 2017-03-03 (annotated)
- Committer:
- sameera0824
- Date:
- Fri Mar 03 11:36:09 2017 +0000
- Revision:
- 0:770fea48cb00
EEPROM example
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sameera0824 | 0:770fea48cb00 | 1 | // Example |
sameera0824 | 0:770fea48cb00 | 2 | |
sameera0824 | 0:770fea48cb00 | 3 | #include <string> |
sameera0824 | 0:770fea48cb00 | 4 | |
sameera0824 | 0:770fea48cb00 | 5 | #include "mbed.h" |
sameera0824 | 0:770fea48cb00 | 6 | #include "eeprom.h" |
sameera0824 | 0:770fea48cb00 | 7 | |
sameera0824 | 0:770fea48cb00 | 8 | #define EEPROM_ADDR 0x0 // I2c EEPROM address is 0x00 |
sameera0824 | 0:770fea48cb00 | 9 | |
sameera0824 | 0:770fea48cb00 | 10 | #define SDA p9 // I2C SDA pin |
sameera0824 | 0:770fea48cb00 | 11 | #define SCL p10 // I2C SCL pin |
sameera0824 | 0:770fea48cb00 | 12 | |
sameera0824 | 0:770fea48cb00 | 13 | #define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) |
sameera0824 | 0:770fea48cb00 | 14 | #define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) |
sameera0824 | 0:770fea48cb00 | 15 | |
sameera0824 | 0:770fea48cb00 | 16 | DigitalOut led2(LED2); |
sameera0824 | 0:770fea48cb00 | 17 | |
sameera0824 | 0:770fea48cb00 | 18 | typedef struct _MyData { |
sameera0824 | 0:770fea48cb00 | 19 | int16_t sdata; |
sameera0824 | 0:770fea48cb00 | 20 | int32_t idata; |
sameera0824 | 0:770fea48cb00 | 21 | float fdata; |
sameera0824 | 0:770fea48cb00 | 22 | } MyData; |
sameera0824 | 0:770fea48cb00 | 23 | |
sameera0824 | 0:770fea48cb00 | 24 | static void myerror(std::string msg) |
sameera0824 | 0:770fea48cb00 | 25 | { |
sameera0824 | 0:770fea48cb00 | 26 | printf("Error %s\n",msg.c_str()); |
sameera0824 | 0:770fea48cb00 | 27 | exit(1); |
sameera0824 | 0:770fea48cb00 | 28 | } |
sameera0824 | 0:770fea48cb00 | 29 | |
sameera0824 | 0:770fea48cb00 | 30 | void eeprom_test(void) |
sameera0824 | 0:770fea48cb00 | 31 | { |
sameera0824 | 0:770fea48cb00 | 32 | EEPROM ep(SDA,SCL,EEPROM_ADDR,EEPROM::T24C64); // 24C64 eeprom with sda = p9 and scl = p10 |
sameera0824 | 0:770fea48cb00 | 33 | uint8_t data[256],data_r[256]; |
sameera0824 | 0:770fea48cb00 | 34 | int8_t ival; |
sameera0824 | 0:770fea48cb00 | 35 | uint16_t s; |
sameera0824 | 0:770fea48cb00 | 36 | int16_t sdata,sdata_r; |
sameera0824 | 0:770fea48cb00 | 37 | int32_t ldata[1024]; |
sameera0824 | 0:770fea48cb00 | 38 | int32_t eeprom_size,max_size; |
sameera0824 | 0:770fea48cb00 | 39 | uint32_t addr; |
sameera0824 | 0:770fea48cb00 | 40 | int32_t idata,idata_r; |
sameera0824 | 0:770fea48cb00 | 41 | uint32_t i,j,k,l,t,id; |
sameera0824 | 0:770fea48cb00 | 42 | float fdata,fdata_r; |
sameera0824 | 0:770fea48cb00 | 43 | MyData md,md_r; |
sameera0824 | 0:770fea48cb00 | 44 | |
sameera0824 | 0:770fea48cb00 | 45 | eeprom_size = ep.getSize(); |
sameera0824 | 0:770fea48cb00 | 46 | max_size = MIN(eeprom_size,256); |
sameera0824 | 0:770fea48cb00 | 47 | |
sameera0824 | 0:770fea48cb00 | 48 | printf("Test EEPROM I2C model %s of %d bytes\n\n",ep.getName(),eeprom_size); |
sameera0824 | 0:770fea48cb00 | 49 | |
sameera0824 | 0:770fea48cb00 | 50 | // Test sequential read byte (max_size first bytes) |
sameera0824 | 0:770fea48cb00 | 51 | for(i = 0;i < max_size;i++) { |
sameera0824 | 0:770fea48cb00 | 52 | ep.read(i,ival); |
sameera0824 | 0:770fea48cb00 | 53 | data_r[i] = ival; |
sameera0824 | 0:770fea48cb00 | 54 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 55 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 56 | } |
sameera0824 | 0:770fea48cb00 | 57 | |
sameera0824 | 0:770fea48cb00 | 58 | printf("Test sequential read %d first bytes :\n",max_size); |
sameera0824 | 0:770fea48cb00 | 59 | for(i = 0;i < max_size/16;i++) { |
sameera0824 | 0:770fea48cb00 | 60 | for(j = 0;j < 16;j++) { |
sameera0824 | 0:770fea48cb00 | 61 | addr = i * 16 + j; |
sameera0824 | 0:770fea48cb00 | 62 | printf("%3d ",(uint8_t)data_r[addr]); |
sameera0824 | 0:770fea48cb00 | 63 | } |
sameera0824 | 0:770fea48cb00 | 64 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 65 | } |
sameera0824 | 0:770fea48cb00 | 66 | |
sameera0824 | 0:770fea48cb00 | 67 | // Test sequential read byte (max_size last bytes) |
sameera0824 | 0:770fea48cb00 | 68 | for(i = 0;i < max_size;i++) { |
sameera0824 | 0:770fea48cb00 | 69 | addr = eeprom_size - max_size + i; |
sameera0824 | 0:770fea48cb00 | 70 | ep.read(addr,ival); |
sameera0824 | 0:770fea48cb00 | 71 | data_r[i] = ival; |
sameera0824 | 0:770fea48cb00 | 72 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 73 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 74 | } |
sameera0824 | 0:770fea48cb00 | 75 | |
sameera0824 | 0:770fea48cb00 | 76 | printf("\nTest sequential read %d last bytes :\n",max_size); |
sameera0824 | 0:770fea48cb00 | 77 | for(i = 0;i < max_size/16;i++) { |
sameera0824 | 0:770fea48cb00 | 78 | for(j = 0;j < 16;j++) { |
sameera0824 | 0:770fea48cb00 | 79 | addr = i * 16 + j; |
sameera0824 | 0:770fea48cb00 | 80 | printf("%3d ",(uint8_t)data_r[addr]); |
sameera0824 | 0:770fea48cb00 | 81 | } |
sameera0824 | 0:770fea48cb00 | 82 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 83 | } |
sameera0824 | 0:770fea48cb00 | 84 | |
sameera0824 | 0:770fea48cb00 | 85 | // Test write byte (max_size first bytes) |
sameera0824 | 0:770fea48cb00 | 86 | for(i = 0;i < max_size;i++) |
sameera0824 | 0:770fea48cb00 | 87 | data[i] = i; |
sameera0824 | 0:770fea48cb00 | 88 | |
sameera0824 | 0:770fea48cb00 | 89 | for(i = 0;i < max_size;i++) { |
sameera0824 | 0:770fea48cb00 | 90 | ep.write(i,(int8_t)data[i]); |
sameera0824 | 0:770fea48cb00 | 91 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 92 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 93 | } |
sameera0824 | 0:770fea48cb00 | 94 | |
sameera0824 | 0:770fea48cb00 | 95 | // Test read byte (max_size first bytes) |
sameera0824 | 0:770fea48cb00 | 96 | for(i = 0;i < max_size;i++) { |
sameera0824 | 0:770fea48cb00 | 97 | ep.read(i,(int8_t&)ival); |
sameera0824 | 0:770fea48cb00 | 98 | data_r[i] = (uint8_t)ival; |
sameera0824 | 0:770fea48cb00 | 99 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 100 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 101 | } |
sameera0824 | 0:770fea48cb00 | 102 | |
sameera0824 | 0:770fea48cb00 | 103 | printf("\nTest write and read %d first bytes :\n",max_size); |
sameera0824 | 0:770fea48cb00 | 104 | for(i = 0;i < max_size/16;i++) { |
sameera0824 | 0:770fea48cb00 | 105 | for(j = 0;j < 16;j++) { |
sameera0824 | 0:770fea48cb00 | 106 | addr = i * 16 + j; |
sameera0824 | 0:770fea48cb00 | 107 | printf("%3d ",(uint8_t)data_r[addr]); |
sameera0824 | 0:770fea48cb00 | 108 | } |
sameera0824 | 0:770fea48cb00 | 109 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 110 | } |
sameera0824 | 0:770fea48cb00 | 111 | |
sameera0824 | 0:770fea48cb00 | 112 | // Test current address read byte (max_size first bytes) |
sameera0824 | 0:770fea48cb00 | 113 | ep.read((uint32_t)0,(int8_t&)ival); // current address is 0 |
sameera0824 | 0:770fea48cb00 | 114 | data_r[0] = (uint8_t)ival; |
sameera0824 | 0:770fea48cb00 | 115 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 116 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 117 | |
sameera0824 | 0:770fea48cb00 | 118 | for(i = 1;i < max_size;i++) { |
sameera0824 | 0:770fea48cb00 | 119 | ep.read((int8_t&)ival); |
sameera0824 | 0:770fea48cb00 | 120 | data_r[i] = (uint8_t)ival; |
sameera0824 | 0:770fea48cb00 | 121 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 122 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 123 | } |
sameera0824 | 0:770fea48cb00 | 124 | |
sameera0824 | 0:770fea48cb00 | 125 | printf("\nTest current address read %d first bytes :\n",max_size); |
sameera0824 | 0:770fea48cb00 | 126 | for(i = 0;i < max_size/16;i++) { |
sameera0824 | 0:770fea48cb00 | 127 | for(j = 0;j < 16;j++) { |
sameera0824 | 0:770fea48cb00 | 128 | addr = i * 16 + j; |
sameera0824 | 0:770fea48cb00 | 129 | printf("%3d ",(uint8_t)data_r[addr]); |
sameera0824 | 0:770fea48cb00 | 130 | } |
sameera0824 | 0:770fea48cb00 | 131 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 132 | } |
sameera0824 | 0:770fea48cb00 | 133 | |
sameera0824 | 0:770fea48cb00 | 134 | // Test sequential read byte (first max_size bytes) |
sameera0824 | 0:770fea48cb00 | 135 | ep.read((uint32_t)0,(int8_t *)data_r,(uint32_t) max_size); |
sameera0824 | 0:770fea48cb00 | 136 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 137 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 138 | |
sameera0824 | 0:770fea48cb00 | 139 | printf("\nTest sequential read %d first bytes :\n",max_size); |
sameera0824 | 0:770fea48cb00 | 140 | for(i = 0;i < max_size/16;i++) { |
sameera0824 | 0:770fea48cb00 | 141 | for(j = 0;j < 16;j++) { |
sameera0824 | 0:770fea48cb00 | 142 | addr = i * 16 + j; |
sameera0824 | 0:770fea48cb00 | 143 | printf("%3d ",(uint8_t)data_r[addr]); |
sameera0824 | 0:770fea48cb00 | 144 | } |
sameera0824 | 0:770fea48cb00 | 145 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 146 | } |
sameera0824 | 0:770fea48cb00 | 147 | |
sameera0824 | 0:770fea48cb00 | 148 | // Test write short, long, float |
sameera0824 | 0:770fea48cb00 | 149 | sdata = -15202; |
sameera0824 | 0:770fea48cb00 | 150 | addr = eeprom_size - 16; |
sameera0824 | 0:770fea48cb00 | 151 | ep.write(addr,(int16_t)sdata); // short write at address eeprom_size - 16 |
sameera0824 | 0:770fea48cb00 | 152 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 153 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 154 | |
sameera0824 | 0:770fea48cb00 | 155 | idata = 45123; |
sameera0824 | 0:770fea48cb00 | 156 | addr = eeprom_size - 12; |
sameera0824 | 0:770fea48cb00 | 157 | ep.write(addr,(int32_t)idata); // long write at address eeprom_size - 12 |
sameera0824 | 0:770fea48cb00 | 158 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 159 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 160 | |
sameera0824 | 0:770fea48cb00 | 161 | fdata = -12.26; |
sameera0824 | 0:770fea48cb00 | 162 | addr = eeprom_size - 8; |
sameera0824 | 0:770fea48cb00 | 163 | ep.write(addr,(float)fdata); // float write at address eeprom_size - 8 |
sameera0824 | 0:770fea48cb00 | 164 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 165 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 166 | |
sameera0824 | 0:770fea48cb00 | 167 | // Test read short, long, float |
sameera0824 | 0:770fea48cb00 | 168 | printf("\nTest write and read short (%d), long (%d), float (%f) :\n", |
sameera0824 | 0:770fea48cb00 | 169 | sdata,idata,fdata); |
sameera0824 | 0:770fea48cb00 | 170 | |
sameera0824 | 0:770fea48cb00 | 171 | ep.read((uint32_t)(eeprom_size - 16),(int16_t&)sdata_r); |
sameera0824 | 0:770fea48cb00 | 172 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 173 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 174 | printf("sdata %d\n",sdata_r); |
sameera0824 | 0:770fea48cb00 | 175 | |
sameera0824 | 0:770fea48cb00 | 176 | ep.read((uint32_t)(eeprom_size - 12),(int32_t&)idata_r); |
sameera0824 | 0:770fea48cb00 | 177 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 178 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 179 | printf("idata %d\n",idata_r); |
sameera0824 | 0:770fea48cb00 | 180 | |
sameera0824 | 0:770fea48cb00 | 181 | ep.read((uint32_t)(eeprom_size - 8),fdata_r); |
sameera0824 | 0:770fea48cb00 | 182 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 183 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 184 | printf("fdata %f\n",fdata_r); |
sameera0824 | 0:770fea48cb00 | 185 | |
sameera0824 | 0:770fea48cb00 | 186 | // Test read and write a structure |
sameera0824 | 0:770fea48cb00 | 187 | md.sdata = -15203; |
sameera0824 | 0:770fea48cb00 | 188 | md.idata = 45124; |
sameera0824 | 0:770fea48cb00 | 189 | md.fdata = -12.27; |
sameera0824 | 0:770fea48cb00 | 190 | |
sameera0824 | 0:770fea48cb00 | 191 | ep.write((uint32_t)(eeprom_size - 32),(void *)&md,sizeof(md)); // write a structure eeprom_size - 32 |
sameera0824 | 0:770fea48cb00 | 192 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 193 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 194 | |
sameera0824 | 0:770fea48cb00 | 195 | printf("\nTest write and read a structure (%d %d %f) :\n",md.sdata,md.idata,md.fdata); |
sameera0824 | 0:770fea48cb00 | 196 | |
sameera0824 | 0:770fea48cb00 | 197 | ep.read((uint32_t)(eeprom_size - 32),(void *)&md_r,sizeof(md_r)); |
sameera0824 | 0:770fea48cb00 | 198 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 199 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 200 | |
sameera0824 | 0:770fea48cb00 | 201 | printf("md.sdata %d\n",md_r.sdata); |
sameera0824 | 0:770fea48cb00 | 202 | printf("md.idata %d\n",md_r.idata); |
sameera0824 | 0:770fea48cb00 | 203 | printf("md.fdata %f\n",md_r.fdata); |
sameera0824 | 0:770fea48cb00 | 204 | |
sameera0824 | 0:770fea48cb00 | 205 | // Test read and write of an array of the first max_size bytes |
sameera0824 | 0:770fea48cb00 | 206 | for(i = 0;i < max_size;i++) |
sameera0824 | 0:770fea48cb00 | 207 | data[i] = max_size - i - 1; |
sameera0824 | 0:770fea48cb00 | 208 | |
sameera0824 | 0:770fea48cb00 | 209 | ep.write((uint32_t)(0),data,(uint32_t)max_size); |
sameera0824 | 0:770fea48cb00 | 210 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 211 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 212 | |
sameera0824 | 0:770fea48cb00 | 213 | ep.read((uint32_t)(0),data_r,(uint32_t)max_size); |
sameera0824 | 0:770fea48cb00 | 214 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 215 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 216 | |
sameera0824 | 0:770fea48cb00 | 217 | printf("\nTest write and read an array of the first %d bytes :\n",max_size); |
sameera0824 | 0:770fea48cb00 | 218 | for(i = 0;i < max_size/16;i++) { |
sameera0824 | 0:770fea48cb00 | 219 | for(j = 0;j < 16;j++) { |
sameera0824 | 0:770fea48cb00 | 220 | addr = i * 16 + j; |
sameera0824 | 0:770fea48cb00 | 221 | printf("%3d ",(uint8_t)data_r[addr]); |
sameera0824 | 0:770fea48cb00 | 222 | } |
sameera0824 | 0:770fea48cb00 | 223 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 224 | } |
sameera0824 | 0:770fea48cb00 | 225 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 226 | |
sameera0824 | 0:770fea48cb00 | 227 | // Test write and read an array of int32 |
sameera0824 | 0:770fea48cb00 | 228 | s = eeprom_size / 4; // size of eeprom in int32 |
sameera0824 | 0:770fea48cb00 | 229 | int ldata_size = sizeof(ldata) / 4; // size of data array in int32 |
sameera0824 | 0:770fea48cb00 | 230 | l = s / ldata_size; // loop index |
sameera0824 | 0:770fea48cb00 | 231 | |
sameera0824 | 0:770fea48cb00 | 232 | // size of read / write in bytes |
sameera0824 | 0:770fea48cb00 | 233 | t = eeprom_size; |
sameera0824 | 0:770fea48cb00 | 234 | if(t > ldata_size * 4) |
sameera0824 | 0:770fea48cb00 | 235 | t = ldata_size * 4; |
sameera0824 | 0:770fea48cb00 | 236 | |
sameera0824 | 0:770fea48cb00 | 237 | printf("Test write and read an array of %d int32 (write entire memory) :\n",t/4); |
sameera0824 | 0:770fea48cb00 | 238 | |
sameera0824 | 0:770fea48cb00 | 239 | // Write entire eeprom |
sameera0824 | 0:770fea48cb00 | 240 | if(l) { |
sameera0824 | 0:770fea48cb00 | 241 | for(k = 0;k < l;k++) { |
sameera0824 | 0:770fea48cb00 | 242 | for(i = 0;i < ldata_size;i++) |
sameera0824 | 0:770fea48cb00 | 243 | ldata[i] = ldata_size * k + i; |
sameera0824 | 0:770fea48cb00 | 244 | |
sameera0824 | 0:770fea48cb00 | 245 | addr = k * ldata_size * 4; |
sameera0824 | 0:770fea48cb00 | 246 | ep.write(addr,(void *)ldata,t); |
sameera0824 | 0:770fea48cb00 | 247 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 248 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 249 | } |
sameera0824 | 0:770fea48cb00 | 250 | |
sameera0824 | 0:770fea48cb00 | 251 | printf("Write OK\n"); |
sameera0824 | 0:770fea48cb00 | 252 | |
sameera0824 | 0:770fea48cb00 | 253 | // Read entire eeprom |
sameera0824 | 0:770fea48cb00 | 254 | id = 0; |
sameera0824 | 0:770fea48cb00 | 255 | for(k = 0;k < l;k++) { |
sameera0824 | 0:770fea48cb00 | 256 | addr = k * ldata_size * 4; |
sameera0824 | 0:770fea48cb00 | 257 | ep.read(addr,(void *)ldata,t); |
sameera0824 | 0:770fea48cb00 | 258 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 259 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 260 | |
sameera0824 | 0:770fea48cb00 | 261 | // format outputs with 8 words rows |
sameera0824 | 0:770fea48cb00 | 262 | for(i = 0;i < ldata_size / 8;i++) { |
sameera0824 | 0:770fea48cb00 | 263 | id++; |
sameera0824 | 0:770fea48cb00 | 264 | printf("%4d ",id); |
sameera0824 | 0:770fea48cb00 | 265 | for(j = 0;j < 8;j++) { |
sameera0824 | 0:770fea48cb00 | 266 | addr = i * 8 + j; |
sameera0824 | 0:770fea48cb00 | 267 | printf("%5d ",ldata[addr]); |
sameera0824 | 0:770fea48cb00 | 268 | } |
sameera0824 | 0:770fea48cb00 | 269 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 270 | } |
sameera0824 | 0:770fea48cb00 | 271 | } |
sameera0824 | 0:770fea48cb00 | 272 | } |
sameera0824 | 0:770fea48cb00 | 273 | else { |
sameera0824 | 0:770fea48cb00 | 274 | for(i = 0;i < s;i++) |
sameera0824 | 0:770fea48cb00 | 275 | ldata[i] = i; |
sameera0824 | 0:770fea48cb00 | 276 | |
sameera0824 | 0:770fea48cb00 | 277 | addr = 0; |
sameera0824 | 0:770fea48cb00 | 278 | ep.write(addr,(void *)ldata,t); |
sameera0824 | 0:770fea48cb00 | 279 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 280 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 281 | |
sameera0824 | 0:770fea48cb00 | 282 | printf("Write OK\n"); |
sameera0824 | 0:770fea48cb00 | 283 | |
sameera0824 | 0:770fea48cb00 | 284 | // Read entire eeprom |
sameera0824 | 0:770fea48cb00 | 285 | id = 0; |
sameera0824 | 0:770fea48cb00 | 286 | |
sameera0824 | 0:770fea48cb00 | 287 | addr = 0; |
sameera0824 | 0:770fea48cb00 | 288 | ep.read(addr,(void *)ldata,t); |
sameera0824 | 0:770fea48cb00 | 289 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 290 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 291 | |
sameera0824 | 0:770fea48cb00 | 292 | // format outputs with 8 words rows |
sameera0824 | 0:770fea48cb00 | 293 | for(i = 0;i < s / 8;i++) { |
sameera0824 | 0:770fea48cb00 | 294 | id++; |
sameera0824 | 0:770fea48cb00 | 295 | printf("%4d ",id); |
sameera0824 | 0:770fea48cb00 | 296 | for(j = 0;j < 8;j++) { |
sameera0824 | 0:770fea48cb00 | 297 | addr = i * 8 + j; |
sameera0824 | 0:770fea48cb00 | 298 | printf("%5d ",ldata[addr]); |
sameera0824 | 0:770fea48cb00 | 299 | } |
sameera0824 | 0:770fea48cb00 | 300 | printf("\n"); |
sameera0824 | 0:770fea48cb00 | 301 | } |
sameera0824 | 0:770fea48cb00 | 302 | } |
sameera0824 | 0:770fea48cb00 | 303 | |
sameera0824 | 0:770fea48cb00 | 304 | // clear eeprom |
sameera0824 | 0:770fea48cb00 | 305 | printf("\nClear eeprom\n"); |
sameera0824 | 0:770fea48cb00 | 306 | |
sameera0824 | 0:770fea48cb00 | 307 | ep.clear(); |
sameera0824 | 0:770fea48cb00 | 308 | if(ep.getError() != 0) |
sameera0824 | 0:770fea48cb00 | 309 | myerror(ep.getErrorMessage()); |
sameera0824 | 0:770fea48cb00 | 310 | |
sameera0824 | 0:770fea48cb00 | 311 | printf("End\n"); |
sameera0824 | 0:770fea48cb00 | 312 | |
sameera0824 | 0:770fea48cb00 | 313 | } |
sameera0824 | 0:770fea48cb00 | 314 | |
sameera0824 | 0:770fea48cb00 | 315 | int main() |
sameera0824 | 0:770fea48cb00 | 316 | { |
sameera0824 | 0:770fea48cb00 | 317 | |
sameera0824 | 0:770fea48cb00 | 318 | eeprom_test(); |
sameera0824 | 0:770fea48cb00 | 319 | |
sameera0824 | 0:770fea48cb00 | 320 | return(0); |
sameera0824 | 0:770fea48cb00 | 321 | } |