Hallo,
sieht nach Arduino aus?
Wire.begin gehört ins setup
und in einer Funktion zum Bsp. kannste aufeinanderfolgende Register wie 
folgt beschreiben
| 1 | bool set_RTC_Alarm (int i2c_adresse, byte Stunde, byte Minute, byte Sekunde)
 | 
| 2 | {
 | 
| 3 |   bool error = false;                     // Fehlerstatus setzen        
 | 
| 4 |        
 | 
| 5 |   Wire.beginTransmission(i2c_adresse);
 | 
| 6 |   Wire.write(0x07);                       // setzen auf Registernummer bzw. dort wo es losgehen soll
 | 
| 7 |   Wire.write(decToBcd(Sekunde));          // setze Alarmzeit auf xx Sekunden im Register 07h
 | 
| 8 |   Wire.write(decToBcd(Minute));           // setze Alarmzeit auf xx Minuten  im Register 08h
 | 
| 9 |   Wire.write(decToBcd(Stunde));           // setze Alarmzeit auf xx Stunden  im Register 09h
 | 
| 10 | 
 | 
| 11 |   if (Wire.endTransmission() > 0 )  {     
 | 
| 12 |     error = true;                         // I2C Busfehler
 | 
| 13 |   }  
 | 
| 14 |   return error;    
 | 
| 15 | }
 | 
Ansonsten musste immer mit endTransmission enden und beginTransmission 
anfangen, wenn die Register nicht hintereinander liegen.