@oberallgeier
Du mußt den Returnwert von "i2c_start (Sadd + I2C_WRITE)" auswerten. So wie ich das in meinem Pseudocode geschrieben habe

if(i2c_start(Adresse und Write) == 0) {
.....
Code:
Erklärung in der Dokumentation zur Bibliothek (siehe obigen Link "... Master lib..") :
unsigned char i2c_start     (      unsigned char      addr      )      

Issues a start condition and sends address and transfer direction.

Parameters:
        addr     address and transfer direction of I2C device

Return values:
        0     device accessible
        1     failed to access device
1 heißt, das Device ist nicht ansprechbar, hat nicht mit ACK geantwortet.

Wer schreibt eigentlich den Code, den du da so postest, z.B. den Bascom Code. Ich sehe an keiner Stelle, daß ACK bzw NAK ausgewertet wird. Da wird überall blind in den Bus hineingerufen, ob ein Device nun antwortet oder gar nicht da ist. Das wird dann auch noch als Beispielcode veröffentlicht.

MfG Klebwax