
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo, > habe probleme mit einem ds1621 Temperatur IC (adresse = 140 - alle a0-a2 auf masse). > angeschlossen ist alles richtig. in Deinem Link ist die Adresse für alle Datenleitungen im Gegensatz zu hier richtig mit 144 angegeben. > Der Sensor reagiert auch, nur bekomme ich keine brauchbaren > Daten. (siehe ds1621.txt) Ich arbeite mit HyperTerminal. Mit diesem Programm habe ich auch schon Probleme gehabt und dann eigene Routinen geschrieben, nur im Augenblick nicht greifbar. Teste doch erstmal aus, ob die grundlegenden Routinen (Start, Stop, Read, Write, Ack) funktionieren. Es ist nie eine gute Idee solch ein doch etwas unübersichtliches Programm gleich als ganzes zu verwenden. > Ich vermute fast, dass mein IC kaputt ist, was aber eigentlich auch nicht sein kann. > immerhin macht er ja was. (zumindest bekomme ich vom Chip ja das ACK bei der > Datenübertragung) Wirklich unwahrscheinlich, daß das IC defekt ist. > Hat evtl. jemand das gleiche IC zur hand und könnte das Programm kurz selbst testen? > Oder hat jemand ein eigenes Programm zur steuerung eines ds1621? > wäre über jede Hilfe dankbar Greifbar für jetzt nur für die V2, da sieht die Sache etwas einfacher aus. In Value steht nach Rückkehr aus der Funktion der Temperaturwert übergeben werden muss in DEV die Geräteadresse (in Deinem Fall 144 dezimal 90hex) Ach so - geschrieben in CCbasic++ das von Stefan Tappertshofen entwickelt wird: Grüße Henrik '-------------------------------------- define value as word [2] define temperatur as word [3] define temp as byte [7] define data as byte [8] define counter as byte [9] define slope as byte [10] '-------------------------------------- 'Hautprogramm ruft Funktion auf -- ' ------------------------------------- 'ACHTUNG - evtl. vorhandene Umleitungen müssen vorher aufgehoben werden! function readtemp() IIC.init IIC.start IIC.send dev IIC.send EEh 'temperaturmessung anstoßen IIC.STOP pause 10 IIC.start IIC.send dev IIC.send 22h 'temperaturmessung stoppen IIC.stop '--------------------------- IIC.start IIC.send DEV IIC.send AAh 'temperaturmessung Lesekommando IIC.stop IIC.start IIC.send dev+1 'lowtemperaturbyte auslesen IIC.get value temperatur = value IIC.stop '------------------------------ IIC.start IIC.send dev IIC.send A8h 'Counter Lesekommando IIC.stop IIC.start IIC.send dev + 1 'Counter auslesen IIC.get value counter = value IIC.stop '----------------------------- IIC.start IIC.send dev IIC.send A9h 'Slope Lesekommando IIC.stop IIC.start IIC.send DEV+1 'Slope auslesen IIC.get value slope = value IIC.stop IIC.off value = ( ( temperatur * 100 - 25 ) + ( ( slope - counter ) * 100 / slope * 100 ) /100) / 10 end function '--------------------------------- Meine Homepage: http://www.henrik-reimers.de/control/mmsr.htm |
| Antwort schreiben |