@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) {
.....1 heißt, das Device ist nicht ansprechbar, hat nicht mit ACK geantwortet.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
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
Lesezeichen