Patrick Schmelzer schrieb:
> Und welcher Wert (in deinem Beispiel, h,m,s) in welche Stelle des Arrays
> geschrieben wird, steht im Datenblatt des Sensors?
Hast du schon mal reingesehen?
Du kriegst bei einem Read im Non-Hold Mode genau 3 Bytes.
Ds MSB, das LSB und eine Checksumme.
Welcher 16 Bit Wert da in Form von 2 Bytes übertragen wird, hängt davon
ab, welches Kommando du vorher zum SHC geschickt hast. Schickst du ein
Kommando 'Trigger T Measurement' kriegst du die Temperatur bei der
nachfolgenden Abfrage. Schickst du ein Kommando 'Trigger RH Measurement'
kriegst du bei der nachfolgenden Abfrage die relative Luftfeuchte.
Dtanblatt
http://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/Humidity/Sensirion_Humidity_SHT20_Datasheet_V3.pdf
Ab Seite 7, Abschnitt "5.3 Sending a Command" studieren. Inbesondere die
Tabelle 6 und Diagramme 15 und 16 sind wichtig. Wobei mir scheint, dass
der Non-Hold Master Mode die einfachere Variante sein dürfte. Ich weiss
allerdings nicht aus dem Kopf, ob der XMega ein Clock-Stretching am I2C
unterstützt. Wenn nicht, ist der Non-Hold Mode definitiv einfacher: Du
schiebst das Kommando rüber und startest dann Read Abfragen. Die gehen
solange schief, solange der SHC misst. Ist er fertig, dann geht der Read
gut und du kriegst deinen Messwert.