
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo, erstmal freut es mich, daß mein Code doch nicht völlig vergebens gepostet wurde :-) > Dann hab ich es mal mit dem CCBasic++ probiert und siehe da, es funktionierte alles so wie es > sollte. Sogar zehntel Grad kann der ds1621 anzeigen! Rechnerisch gehen sogar 0,07 Grad - nur ergibt das in Verbindung der Genauigkeit des Chips kaum Sinn. Der Vollständigkeit halber sei au erwähnt, daß ich in meinem Code darauf verzichtet habe, den Single Shot Modus zu benutzen. Das ist aber wurscht, da auch im continuos Modus nsch einem Stop die Konvertierung erst vokllständig durchegeführt wird, nachdem wie hier ein Stop Kommando erfolgt. > Um auf des Rätsel's Lösung zu kommen habe ich den funktionierenden CBasic++ Quellcode > umgeschrieben, damit der unter der C-Control 2.0 IDE läuft. Das Ergebnis vorweg: Es lief da > nicht, keine sinnvollen Werte, wie gehabt.... Versuche mal mit Copy und paste die untenstehende Subroutine (ggf auch direkt, dann das return loschen) auszuprobieren, Sieht fast genauso aus wie Dein Code, aber ich war zu faul, das nun Buchstabe für Buchstabe zu überprüfen. Das läuft soeben bei mir völlig fehlerfrei mit dem alten Compiler auf einer V2. Grüße Henrik #READTEMP print "#OFF#"; print "#ON_IIC#"; print"#START#"; put dev put &hEE 'temperaturmessung anstoßen print"#STOP#"; print"#START#"; put dev put &h22 'temperaturmessung stoppen print"#STOP#"; '--------------------------- print"#START#"; put dev put &hAA 'temperaturmessung Lesekommando print"#STOP#"; print"#START#"; put dev+1 'lowtemperaturbyte auslesen get value temperatur = value print"#STOP#"; '------------------------------ print"#START#"; put dev put &hA8 'Counter Lesekommando print"#STOP#"; print"#START#"; put dev+1 'Counter auslesen get value counter = value print"#STOP#"; '----------------------------- print"#START#"; put dev put &hA9 'Slope Lesekommando print"#STOP#"; print"#START#"; put dev+1 'Slope auslesen get value slope = value print"#STOP#"; print"#OFF#"; value = ((temperatur*100-25) + ((slope-counter)*100/slope*100)/100)/10 return 'ggf löschen Meine Homepage: http://www.henrik-reimers.de/control/mmsr.htm |
| Antwort schreiben |