#include void i2c_eeprom_write_byte( int deviceaddress, unsigned int eeaddress, byte data ) { int rdata = data; Wire.beginTransmission(deviceaddress); Wire.write((int)(eeaddress >> 8)); // MSB Wire.write((int)(eeaddress & 0xFF)); // LSB Wire.write(rdata); Wire.endTransmission(); } void i2c_eeprom_write_page( int deviceaddress, unsigned int eeaddresspage, byte* data, byte length ) { Wire.beginTransmission(deviceaddress); Wire.write((int)(eeaddresspage >> 8)); // MSB Wire.write((int)(eeaddresspage & 0xFF)); // LSB byte c; for ( c = 0; c < length; c++) Wire.write(data[c]); Wire.endTransmission(); } byte i2c_eeprom_read_byte( int deviceaddress, unsigned int eeaddress ) { byte rdata = 0xFF; Wire.beginTransmission(deviceaddress); Wire.write((int)(eeaddress >> 8)); // MSB Wire.write((int)(eeaddress & 0xFF)); // LSB Wire.endTransmission(); Wire.requestFrom(deviceaddress,1); if (Wire.available()) rdata = Wire.read(); return rdata; } void i2c_eeprom_read_buffer( int deviceaddress, unsigned int eeaddress, byte *buffer, int length ) { Wire.beginTransmission(deviceaddress); Wire.write((int)(eeaddress >> 8)); // MSB Wire.write((int)(eeaddress & 0xFF)); // LSB Wire.endTransmission(); Wire.requestFrom(deviceaddress,length); int c = 0; for ( c = 0; c < length; c++ ) if (Wire.available()) buffer[c] = Wire.read(); } void PrintHex8(uint8_t *data, uint8_t length) //imprime los HEX con los ceros { //Serial.print("0x"); for (int i=0; i>8); uint8_t LSB=byte(data[i]); if (MSB<0x10) {Serial.print("0");} Serial.print(MSB,HEX); Serial.print(" "); if (LSB<0x10) {Serial.print("0");} Serial.print(LSB,HEX); Serial.print(" "); } } void setup() { //char somedata[] = "mi mama me mima"; Wire.begin(); // initialise the connection Serial.begin(115200); //i2c_eeprom_write_page(0x50, 0, (byte *)somedata, sizeof(somedata)); } void loop() { uint8_t data; unsigned int count = 16; for(unsigned int y=0; y<65600; y++) { if(count == 16) { Serial.println(""); Serial.print(y,HEX); Serial.print(":\t"); count=0; } delay(5); data = i2c_eeprom_read_byte(0x50, y); / delay(5); Serial.print(" "); PrintHex8(&data,1); count++; } }