ds1631z: ds1631.readi2(i): falscher Wert Kategorie: I²C-Bus (von chrisk - 7.02.2009 22:25) | |
| |
Hallo, ich habe ein Problem mit dem DS1631 Temperaturfühler, es wirden zwar eine Temperatur geliefert, allerdings kann diese nicht stimmen (32° im Keller) Es sind 2 Sensoren derzeit angeschlossen (siehe Output unten) Code:: int v_temperature[count+1]; //Array für den Status der Sensoren byte i; function init() { ds1631.init(8); //alle Temperatursensoren werden initalisiert. for i=0 ... count v_temperature[i]=0; } thread control { sleep 1000; for i=0 ... count { wait(i2c.ready()); v_temperature[i]=ds1631.readi2(i); } } Anzeigen lasse ich mir das ganze über die Serielle Schnittstelle per Hyperterminal: Code: for i=0 ... temperature.count { hwcom.ret(); hwcom.print("Nr:"); hwcom.num(i); hwcom.print(" Temperature:"); hwcom.num(temperature.v_temperature[i]); hwcom.print(" THH:"); hwcom.num(ds1631.getThH(i)); hwcom.print(" THL:"); hwcom.num(ds1631.getThL(i)); } Output: Nr:0 Temperature:3193 THH:1593 THL:1593 Nr:1 Temperature:-7 THH:-7 THL:-7 Nr:2 Temperature:-7 THH:-7 THL:-7 Nr:3 Temperature:3193 THH:1593 THL:1593 Nr:4 Temperature:-7 THH:-7 THL:-7 Nr:5 Temperature:-7 THH:-7 THL:-7 Nr:6 Temperature:-7 THH:-7 THL:-7 Nr:7 Temperature:-7 THH:-7 THL:-7 Code: for i=0 ... temperature.count { hwcom.ret(); hwcom.print("Nr:"); hwcom.num(i); hwcom.print(" config:"); hwcom.num(ds1631.getConfig(i)); } Output: Nr:0 config:127 Nr:1 config:255 Nr:2 config:255 Nr:3 config:127 Nr:4 config:255 Nr:5 config:255 Nr:6 config:255 Nr:7 config:255 Verwendet wird die DS1631Z Anschlussplatine lang. Diese sind direkt an einem Sternverteiler für den Bus angehängt (SDA& SCL Kabellänge ist ca. 50cm). +5V und Masse kommen von einem alten AT-Netzteil (das dürfte aber kein Problem sein, Displays, Tastaturen etc. funktionieren auf diese Art einwandfrei) Hat jemand eine Idee woran die falsche Temperatur liegen könnte? danke&lg christian | |
Antwort schreiben Antworten: Re: ds1631z: ds1631.readi2(i): falscher Wert (von Franz Stefan - 9.02.2009 13:39) Re: ds1631z: ds1631.readi2(i): falscher Wert (von Franz Stefan - 9.02.2009 14:01) Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 9.02.2009 23:32) Re: ds1631z: ds1631.readi2(i): falscher Wert (von GeorgEichhorn - 17.02.2009 0:00) Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 21.02.2009 17:40) Re: ds1631z: ds1631.readi2(i): falscher Wert (von GeorgEichhorn - 26.02.2009 20:53) Re: ds1631z: ds1631.readi2(i): falscher Wert (von Franz Stefan - 13.02.2009 9:01) Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 21.02.2009 10:34) Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 21.02.2009 17:36) Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 21.02.2009 10:32) Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 20.03.2009 15:00) |