Also hänge ich an jeder funktion in der ich etwas sende, dieses return dran. Soll ich dann den Befehl wiederholen lassen,wenn ein Byte nicht korrekt gesendet wurde?
Ja die Tabelle habe ich schon gefunden. Danke.
Also nochmal zusammengefasst:

Startbedingung
warten bis ack gesendet wurde
return(TWSR & 0xf;

Adresse senden
warten bis ack gesendet wurde
return(TWSR & 0xf;

Daten senden
warten bis ack gesendet wurde
return(TWSR & 0xf;

Stopbedingung