Hi, ich habe betreibe hier an einem Atmega16 (1 Mhz) einen SHT75. Die Kommunikation scheint zu funktionieren, ich habe zum großen Teil den C-Code von Sensirion benutzt und ihn modifizert (für Keil geschrieben, ich nutze gcc). Nun bekomme ich bei meinen Messungen irgendwie seltsame werte, die sich (je nach Erwärmung) auch ändern, allerdings nur in regelmäßigen Schritten - ich habe hier im Forum auch schon einen ähnlichen Beitrag dazu gelesen, allerdings hat mir der nicht weitergeholfen. Lt. datenblatt wird der messwert (die ersten 14 Bit) folgendermaßen berechnet: Messwert * 0,01 - 40 = Temperatur Messwert [errechnete Temperatur] - 0xE2FF [49,59] (Zimmertemperatur) - 0xE37F [50,87] (leicht erwärmt) - 0xE3BF [51,51] (leicht erwärmt) - 0xE4FF [54,71] (mit Fön erwärmt) - 0xE4BF [54,07] (mit Fön erwärmt) Die Werte unterscheiden sich immer genau in Vielfachen von 0,64... Kann sich das jemand erklären? Habe ich irgendetwas übersehen? Wäre nett wenn mal jemand einen Blick auf den Code werfen könnte. Gruß und Danke, Andreas
Sorry es sind natürlich nicht die "ersten 14 Bit" sondern die "letzten" 14 Bit des Messwertes
Ein Ausrufezeichen zu viel... In sht_measure(...) steht: while(!SHT_DATA_IN){ asm volatile ("nop"); } Im Datenblatt aber: Measurement is finished when the SHTxx pulls down the DATA line. Vermutlich liest du dadurch schon aus, wenn der SHT den ACK vom Wandelbefehl ausgibt. Ich habe diesen Democode auch mal angepasst. Das ist eine der wenigen Stellen, die bei mir deutlich anders sind. Ausserdem hast du ein paar sehr lange Delays drin, aber ich nehme an nur zu Testzwecken. Gruß Uwe
ARRRRRGH klatsch - das war der Fehler, jetzt reagieren die messungen auch lange nicht mehr so "träge" wie vorher und ich bekomme auch vernünftige CRC Werte... Ich dachte es läge am Timing... Danke und Gruß, Andreas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.