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, > > > > 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 > > hab das jetzt mit zwei weiteren DS1631 ausprobiert! Gleiches Phänomen! > Hab genau den obigen Code in ein neues Projekt kopiert. > Das komische ist ja, es hatte schon mal funktioniert! > > Hat jemand noch ne Idee??? > > Gruß, > chris