Für dieses Forum muß Javascript im Browser aktiviert werden!
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> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo André, > > > Hallo Chris, > > > > > habe ein Problem mit dem Temperatursensor DS1631. > > > > > > Seit gestern funktioniert die Thermostat Funktion nicht mehr richtig! > > > > > > Wenn ich mit > > > > > > ds1631.setTh(1,2250,2350); > > > > > > versuche die Schaltschwellen bei 22,5 und 23,5 zu setzen, werden sie bei 22,0 und 23,0 gesetzt. > > > > > > Was kann das sein? ich meine ich habe nichts an dem Prog. geändert. Kann es sein, dass > > > der Basustein defekt ist? Aber die Temparatur wird korrekt mit Nachkommastelle angezeigt. > > > > Wie oft hast Du in letzter Zeit das Thermostat gesetzt ? > > Lt. Datenblatt hält zwar das interne EEProm des Sensors mehr als 50000 Schreibzyklen aus, > > jedoch kann man dies sehr schnell erreichen, wenn man alle paar Minuten das Thermostst > > aktualisiert. > > Daß nurnoch die Werte vor dem Komma gespeichert werden, wäre ein Indiz, daß > > die Speicherzelle des Low-Bytes defekt sein könnte. > > Allerdings ist es auch wieder etwas unwahrscheinlich, daß sich beide Speicherzellen gleichzeitig > > verabschieden. > > > > Versuch einmal die Werte mit einem einfachen Testprogramm zu setzen und wieder auszulesen: > > <code>const ds_addr=0; > > > > thread main > > { > > lcdext.init(); > > ds1631.int(ds_addr); > > ds1631.setTh(ds_addr, 1825, 3450); > > sleep 10; > > lcdext.print("Th Low: "); > > lcdext.zahl4n2(ds1631.getThL(ds_addr)); > > lcdext.put(0xDF); > > lcdext.put('C'); > > lcdext.line(2); > > lcdext.print("Th High: "); > > lcdext.zahl4n2(ds1631.getThH(ds_addr)); > > lcdext.put(0xDF); > > lcdext.put('C'); > > quit 1; > > }</code> > > > > MfG André H. > > Jetzt bekomme ich 18,00 und 34,00 angezeigt. > Gesetzt habe ich das EEPROM max. 100 mal. > > Da scheint doch tatsächlich irgendwas kaputt gegangen zu sein. Hab ich wohl mit meinen magischen > Fingern genau die zwei Bytes zerschossen! Vielleicht sollte ich mal Lotto spielen! > > Werd das Ding jetzt mal austauschen. > > Gruß, > Chris