Hallo Markus,
wenn Du am Fehler aussortieren bist, weißt Du sicherlich auch, warum diese Routine teilweise nicht geht. ;-) ( Auch aus dem Modul DS1621 !)
/**Temperatur lesen als Ganzahlwert(Byte)**************************/ function readb(byte addr) returns byte { byte data,x; i2c.start(0b10010000 or (addr shl 1)); i2c.write(0xAA); i2c.start(0b10010001 or (addr shl 1)); data=i2c.read(); x=i2c.readlast(); i2c.stop(); return data; }
Das Bit 7 zeigt negative Temperaturen an. Also taugt diese Abfrage nur für Aquarianer :-)
Im Ernst: Beim setzen der Temperaturen TH / TL geht das Teil ( DS1621 ) schon. Allerdings wegen des Bugs 0x80 in einem negativen Temperaturniveau ! -32768 bis 32767 fragt man mit 0x8000 auf negativ ab!
Ich habs nicht probiert, also kann es immer noch falsch sein.
Tipp: Nicht fragen, stell das korrekte Modul gleich in deine Mail !
In diesem Sinne, Willi aus Oelde
|