Ich habe dir deinen Code mal etwas umgestellt:
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Portb.0 = Output
Config 1wire = Porta.6
Dim Rom1 As Integer
Dim Temp As Integer
Wait 1
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
Cls
Locate 1 , 1
Lcd "*****Lipo-Koffer****"
Do
1wreset
1wwrite &HCC
1wwrite &H44
'Ddra.6 = 1
Waitms 800
'Ddra.6 = 0
1wreset
1wwrite &HCC
1wwrite &HBE
Rom1 = 1wread(2)
1wreset
Temp = Rom1 / 2
Locate 2 , 1
Lcd "Temperatur = " ; Temp
Locate 2 , 17
Lcd "Grad"
If Temp < 32 Then
Locate 3 , 1
Lcd "*******heizen*******"
Portb.0 = 1
Elseif Temp > 35 Then
Locate 3 , 1
Lcd "****Temperatur ok***"
Portb.0 = 0
End If
Loop
End
Einige Fragen noch:
Warum machst du das: DDRA.6=1 : Waitms 800 : DDRA.6=0 ?
Funktioniert das wirklich Rom1 = 1wread(1) ? Nur ein Byte?
Gruß
Rolf
Lesezeichen