char * Write_All(char RegByte, char Data_LSB, char Data_MSB) { int AnzBytes, Fehlerstelle; char ByteList[4]; ubyte PEC; ubyte Byte1, Byte2, Byte3, Byte4; /***Fehlerbehandlung******************/ static char * Fehlerausgabe[]={ "Write_All war erfolgreich", "Adressierung fehlgeschlagen", "Registeradressierung fehlgeschlagen", "Daten_LSB senden fehlgeschlagen", "Daten_MSB senden fehlgeschlagen", "PEC senden fehlgeschlagen" }; Fehlerstelle= 1; // Initialisierungswert /**************************************/ PEC=0x00; AnzBytes=4; Byte1=BC_W; // I2C_Broadcast_Adresse Byte2=RegByte; // Register_Adresse Byte3=Data_LSB; // Datenbyte LSB Byte4=Data_MSB; // Datenbyte MSB ByteList[0]=Byte1; ByteList[1]=Byte2; ByteList[2]=Byte3; ByteList[3]=Byte4; PEC = PEC_Calculation(ByteList[4],AnzBytes); i2cStart(); if(i2cWrite(Byte1)==1) { Fehlerstelle = 0 }// If_1 else { // Fehler aufgetreten. Initialisierungswert wird übernommen, siehe Fehlerbehandlung } i2cStop(); return Fehlerausgabe[Fehlerstelle]; }