Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > Sehr geehrte Damen und Herren, > > > > > > Ich habe ein Problem mit dem Temperatur-Sensor für I²C. > > > > > > Der Erste wert den das mitgelieferte Beispielprogramm ausgibt beträgt immer 196°. > > > Deshalb habe ich eine Programm-Schleife eingefügt. > > > Des weiteren erhalte ich einen Wert von 255° über 40° und unterhalb von -6°. > > > Ansonsten scheint der Sensor tatsächlich auf 0,5° genau zu funktionieren. > > > > > > Am Ende des Coodes wurde erwähnt dass Fehler und Bugs berichtet werden sollen. > > > Meine Frage > > > > > > 1. Ist etwas defekt? Bus Fehler (Wackelkontakt der Leitung) kann ausgeschlossen werden, > > > da der Fehler Temperatur abhängig auftritt. > > > 2. Was kann ich dagegen tuen? > > > > > > vielen Dank! > > > > > > Hans > > > > Hallo Hans, > > teste mal die 12Bit-Auswertung > > > > <basic> > > #define DS1631_W &H9E ' Schreibadresse > > #define DS1631_R &H9F ' Leseadresse > > > > Sub DS1631_READ() > > Dim Counter, Slope, DS1631Byte1, DS1631Byte2 As Byte > > Dim T As Integer > > I2C_Start() > > I2C_Write(DS1631_W) > > I2C_Write(&HEE) > > I2C_Stop() > > I2C_Start() > > I2C_Write(DS1631_W) > > I2C_Write(&H22) > > I2C_Stop() > > I2C_Start() > > I2C_Write(DS1631_W) > > I2C_Write(&HAA) > > I2C_Stop() > > I2C_Start() > > I2C_Write(DS1631_R) > > DS1631Byte1 = I2C_Read_NACK() > > I2C_Stop() > > I2C_Start() > > I2C_Write(DS1631_W) > > I2C_Write(&HA8) > > I2C_Stop() > > I2C_Start() > > I2C_Write(DS1631_R) > > Counter = I2C_Read_NACK() > > I2C_Stop() > > I2C_Start() > > I2C_Write(DS1631_W) > > I2C_Write(&HA9) > > I2C_Stop() > > I2C_Start() > > I2C_Write(DS1631_R) > > Slope = I2C_Read_NACK() > > I2C_Stop() > > Slope = Slope > > DS1631Byte2 = (((Slope - Counter) * 100 / Slope * 100) / 100) / 10 > > If (DS1631Byte1 And 128) = 0 Then > > T = DS1631Byte1 * 10 + DS1631Byte2 > > Else 'bei negativer Temperatur > > DS1631Byte1 = (Not DS1631Byte1) + 1 'bilde Zweier Komplement > > DS1631Byte2 = 9 - DS1631Byte2 > > T = DS1631Byte1 * 10 + DS1631Byte2 > > T = - T > > End If </basic> > > > > T ist dann in 1/10°C 200 ^= 20,0°C > > > > Gruß Daneie > > > erst mal vielen dank! > > 2. Mein Projekt ist zwar in C verfasst, aber du hast es mir ja als Sub gegeben ;) > Ja ich versuche es sobald ich mein "Konstrukt" wieder zusammengelötet habe.... > Schwesterlein ist mit dem Wäschekorb durchn Keller gegangen, RUMMMS! > > 3. Wenn ich negative Temperaturen erhalte (was wegen Lord Kelvin eig hinfällig ist aber....) > hat die Variable dann automatisch ein negatives Vorzeichen? > > 4. Hat wer Interesse, soll ich euch Bilder schicken und auf dem Laufenden halten > wenns klappt? > > 5. sorry hab mich vertippt... <b><i>www.homematik.ddns.net</b></i> auf 80!