Problema con lettura scrittura eeprom 24lc65

Sto provando questo scatch per scrivere e leggere una eeprom 24lc65 ma come risultato ottengo tutti 255 al posto del valore che vorrei scrivere ( mi sto fermando ai primi 100 blocchi per ora )

#include <Wire.h>

void setup() {
   Serial.begin ( 9600 ) ;
  Wire.begin () ; 
  int indirizzo = 0 ;
  Serial.println ( " INIZIO SCRITTURA " ) ;
  delay ( 500 ) ;
  for ( int c = 0 ; c <=100 ; c ++ ) {
    Wire.beginTransmission ( 0xA0 ) ;
    Wire.write ( highByte ( indirizzo )) ;
    Wire.write ( lowByte ( indirizzo )) ;
    int data = 0 ;
    //
    Wire.write (byte ( data )) ;
    Wire.endTransmission () ;
    data++ ;
    indirizzo ++ ;
    delay (5) ;
  }
  Serial.println ( " FINE SCRITTURA " ) ;
  delay ( 500 ) ;
indirizzo = 0 ;
Serial.println ( " INIZIO LETTURA " ) ;
  delay ( 500 ) ;
  for ( int d = 0 ; d <= 100 ; d++ ) {
    Wire.beginTransmission ( 0x50 ) ;
    Wire.write ( highByte ( indirizzo )) ;
    Wire.write ( lowByte ( indirizzo )) ;
    Wire.requestFrom ( 0x50 , 1 ) ;
    
    while ( Wire.available () ) {
      byte c = Wire.read () ;
      Serial.println ( c ) ;
      indirizzo++;
    }
  }
  Serial.println ( " FINE LETTURA " ) ;
  delay ( 2000 ) ;
}


void loop() {
  

}

Perchè non funziona secondo voi ?

Rileggendo ho notato che la variabile c viene ripetuta , anche se non da errore perchè una si trova dentro il for l'ho rinominata . Poi ho notato che nella lettura manca la chiusura della trasmissione di scrittura nella richiesta dell'indirizzo .
Ho riprovato e leggo solo 0 ora :sweat_smile:

Ho risolto sistemando il codice così

#include <Wire.h>

void setup() {
   Serial.begin ( 9600 ) ;
  Wire.begin () ; 
  int indirizzo = 0 ;
  Serial.println ( " INIZIO SCRITTURA " ) ;
  delay ( 500 ) ;
  int data = 0;
  for ( int c = 0 ; c <= 200 ; c ++ ) {
    Wire.beginTransmission ( 0x50 ) ;
    Wire.write ( highByte ( indirizzo )) ;
    Wire.write ( lowByte ( indirizzo )) ;
    Wire.write (data) ;
    Wire.endTransmission () ;
    Serial.print ( indirizzo ) ;
    Serial.print (" : " );
    Serial.println (data ) ;
    data++ ;
    indirizzo ++ ;
    delay (5) ;
  }
  Serial.println ( " FINE SCRITTURA " ) ;
  delay ( 500 ) ;
  indirizzo = 0 ;
  Serial.println ( " INIZIO LETTURA " ) ;
  delay ( 500 ) ;
  for ( int d = 0 ; d <= 200 ; d++ ) {
    Wire.beginTransmission ( 0x50 ) ;
    Wire.write ( highByte ( indirizzo )) ;
    Wire.write ( lowByte ( indirizzo )) ;
    //Wire.endTransmission () ;
    Wire.requestFrom ( 0x50 , 1 ) ;
    while ( Wire.available () ) {
      byte e = Wire.read () ;
      Serial.print ( indirizzo ) ;
      Serial.print (" : " ) ;
      Serial.println ( e ) ;
      }
    Wire.endTransmission () ;
    indirizzo++ ;
  }
  Serial.println ( " FINE LETTURA " ) ;
  delay ( 2000 ) ;
}


void loop() {
  

}

Solo che in lettura esce che nel blocco 0 mi ritrivo 255 al posto di 0

198 : 198
199 : 199
200 : 200
 FINE SCRITTURA 
 INIZIO LETTURA 
0 : 255
1 : 0
2 : 1
3 : 2
4 : 3
5 : 4