Der Ablauf sieht so aus:
Code:
Start
Adresse senden (beim TMP100 und ADD0 und ADD1 auf 0V => 10010000 => Hex 90)
Pointerregister senden
Variable schreiben
Stopp
für Lesen:
Code:
Start
Adresse senden (beim TMP100 und ADD0 und ADD1 auf 0V => 10010000 => Hex 90)
Pointerregister senden
Repeated Start (mit Adresse Hex 91 => durch R/W Bit)
Variable lesen
immer mit ACK bestätigen, Ausnahme letztes Byte dort mit NACK abschließen
Stopp
Wenn du jetzt also nur die Temp lesen willst schreibst du:
Code:
Start
Adresse
Pointer (0x00 => 0000 0000)
repeated start
Highbyte lesen
Lowbyte lesen
stopp
Mit diesem Code hast du 9Bit Auflösung, wenn du 12Bit brauchst/willst musst du das zuerst im Configurationregister einstellen (einmal bei Programmstart)
Der Ablauf sieht so aus:
Code:
Start
Adresse
Pointeradresse (0x01 => 0000 0001)
Configbyte schreiben (0x60 => 0110 0000)
Stopp
Das lesen funktioniert dann wie oben.

MfG Hannes