Hallo,
ich probiere zur Zeit mit den Tempsensoren DS18S20 rum und habe auch schon einen am laufen.
Nun möchte ich noch einen 2.Sensor mit einbinden, aber es wird mir immer bei beiden Sensoren das gleiche angezeigt.
Hier mal mein Codebeispiel:
Code:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.4 , Db7 = Portd.3 , E = Portb.7 , Rs = Portb.6
Config Lcd = 16 * 2
Config Lcdbus = 4
Cursor Off
Cls
Config 1wire = Portb.1
Declare Sub Messung1
Declare Sub Messung2
Dim Sensor1(9) As Byte
Dim Sensor2(9) As Byte
Dim T As Integer
Dim Temp As Single
Dim T1 As Integer
Dim Temp1 As Single
Deflcdchar 0 , 14 , 10 , 14 , 32 , 32 , 32 , 32 , 32
Locate 1 , 1 : Lcd "Sensor 1: "
Locate 2 , 1 : Lcd "Sensor 2: "
Do
Messung1
Messung2
Loop
End
Sub Messung1
1wwrite &HCC
1wwrite &H44
Waitms 300
1wreset
1wwrite &HCC
1wwrite &HBE
Sensor1(1) = 1wread(9)
1wreset
Decr Sensor1(1)
T = Makeint(sensor1(1) , Sensor1(2))
T = T / 2
Temp = Sensor1(8) - Sensor1(7)
Temp = Temp / Sensor1(8)
Temp = T + Temp
Temp = Temp - 2.3
Locate 1 , 11 : Lcd Fusing(temp , "#.##") ; Chr(0)
End Sub
Sub Messung2
1wwrite &HCC
1wwrite &H44
Waitms 300
1wreset
1wwrite &HCC
1wwrite &HBE
Sensor2(1) = 1wread(9)
1wreset
Decr Sensor2(1)
T1 = Makeint(sensor2(1) , Sensor2(2))
T1 = T1 / 2
Temp1 = Sensor2(8) - Sensor2(7)
Temp1 = Temp1 / Sensor2(8)
Temp1 = T1 + Temp1
Temp1 = Temp1 - 2.3
Locate 2 , 11 : Lcd Fusing(temp1 , "#.##") ; Chr(0)
End Sub
Warum läuft das nicht so? Was muß ich ändern?
Lesezeichen