Hi Marko!
Ganz so aufwendig wollt eich's dann auch nicht treiben. Ich hab' jetzt mal probiert statt der 200ms einfach meinen übrigen code "reinzuschieben". Das geht sogar ganz gut. Aber je nach codelänge vertut sich der Sensor immer um ein paar Grad!?! Momentan wären es nämlich 37°C Raumtermperatur bei mir. ;-D Ist der Code länger, klappt's komischer Weise...
Allerdings wird mein Hauptprogramm immer wieder durch einen externen Interrupt unterbrochen. (Es wird aber nur ein Befehl "incr zähler" ausgeführt. Dann "return") Und wenn diese Interrupts nun sehr schnell sind, "steigt" meine Temperatur?? Wie geht das? "Return" heißt doch, gehe zurück, wo Du aufgehört hast.
Code:
...
on int0 Int0_Interrupt
...
Do
1wreset 'reset the device
1wwrite &HCC 'read ROM command
1wwrite &H44
'weiterer code etc
'...
1wreset 'reset the device
1wwrite &HCC 'read ROM command
1wwrite &HBE 'read ROM command
For I = 1 To 2
Ar(i) = 1wread() 'place into array
Next
Locate 2 , 1
Temperatur = Ar(1)
If Ar(2) > 0 Then Temperatur = 0 Else Shift Temperatur , Right
Lcd Temperatur ; ".";
'restlicher code
loop
'#############
Int0_Interrupt:
incr zähler
return
End
Gruß Stefan
Lesezeichen