Hallo,
jetzt bin ich endlich wieder da...
Hier also mein Code für 5 Sensoren:
Code:
$regfile = "m32def.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 = Portc.5
Dim Timer As Word
Timer = 55800
Config Timer1 = Timer , Prescale = 1024
Enable Timer1
On Timer1 Sekundentakt
Enable Interrupts
Timer1 = Timer
Dim X As Byte : X = 1
Dim Tempsensor1(8) As Byte
Dim Tempsensor2(8) As Byte
Dim Tempsensor3(8) As Byte
Dim Tempsensor4(8) As Byte
Dim Tempsensor5(8) As Byte
Dim Ar1(9) As Byte
Dim Ar2(9) As Byte
Dim Ar3(9) As Byte
Dim Ar4(9) As Byte
Dim Ar5(9) As Byte
Dim Temp1 As Single
Dim Temp2 As Single
Dim Temp3 As Single
Dim Temp4 As Single
Dim Temp5 As Single
Dim Tmp1 As Byte
Dim Tmp2 As Byte
Dim Tmp3 As Byte
Dim Tmp4 As Byte
Dim Tmp5 As Byte
Dim T1 As Integer
Dim T2 As Integer
Dim T3 As Integer
Dim T4 As Integer
Dim T5 As Integer
Dim T6 As Integer
Dim T7 As Integer
Dim T8 As Integer
Dim T9 As Integer
Dim T10 As Integer
Tempsensor1(1) = 1wsearchfirst()
Tempsensor2(1) = 1wsearchnext()
Tempsensor3(1) = 1wsearchnext()
Tempsensor4(1) = 1wsearchnext()
Tempsensor5(1) = 1wsearchnext()
Do
Locate 1 , 1 : Lcd X 'Debug :-)
Locate 1 , 4 : Lcd Fusing(temp1 , "##.#")
Locate 1 , 10 : Lcd Fusing(temp2 , "##.#")
Locate 2 , 1 : Lcd Fusing(temp3 , "##.#")
Locate 2 , 7 : Lcd Fusing(temp4 , "##.#")
Locate 2 , 13 : Lcd Fusing(temp5 , "##.#")
Wait 1 'Test
Cls 'Test
Loop
Sekundentakt:
Timer1 = Timer
Incr X
If X = 2 Then
'Waitms 500
1wreset
1wwrite &H55
1wwrite Tempsensor1(1) , 8
1wwrite &H44
End If
If X = 3 Then
'Waitms 300
1wreset
1wwrite &H55
1wwrite Tempsensor1(1) , 8
1wwrite &HBE
Ar1(1) = 1wread(9)
1wreset
Tmp1 = Ar1(1) And 1
If Tmp1 = 1 Then Decr Ar1(1)
T1 = Makeint(ar1(1) , Ar1(2))
T1 = T1 * 50
T1 = T1 - 25
T2 = Ar1(8) - Ar1(7)
T2 = T2 * 100
T2 = T2 / Ar1(8)
T1 = T1 + T2
T1 = T1 / 10
Temp1 = T1 / 10
End If
If X = 4 Then
'Waitms 500
1wreset
1wwrite &H55
1wwrite Tempsensor2(1) , 8
1wwrite &H44
End If
If X = 5 Then
'Waitms 300
1wreset
1wwrite &H55
1wwrite Tempsensor2(1) , 8
1wwrite &HBE
Ar2(1) = 1wread(9)
1wreset
Tmp2 = Ar2(1) And 1
If Tmp2 = 1 Then Decr Ar2(1)
T3 = Makeint(ar2(1) , Ar2(2))
T3 = T3 * 50
T3 = T3 - 25
T4 = Ar2(8) - Ar2(7)
T4 = T4 * 100
T4 = T4 / Ar2(8)
T3 = T3 + T4
T3 = T3 / 10
Temp2 = T3 / 10
End If
If X = 6 Then
'Waitms 500
1wreset
1wwrite &H55
1wwrite Tempsensor3(1) , 8
1wwrite &H44
End If
If X = 7 Then
'Waitms 300
1wreset
1wwrite &H55
1wwrite Tempsensor3(1) , 8
1wwrite &HBE
Ar3(1) = 1wread(9)
1wreset
Tmp3 = Ar3(1) And 1
If Tmp3 = 1 Then Decr Ar3(1)
T5 = Makeint(ar3(1) , Ar3(2))
T5 = T5 * 50
T5 = T5 - 25
T6 = Ar3(8) - Ar3(7)
T6 = T6 * 100
T6 = T6 / Ar3(8)
T5 = T5 + T6
T5 = T5 / 10
Temp3 = T5 / 10
End If
If X = 8 Then
'Waitms 500
1wreset
1wwrite &H55
1wwrite Tempsensor4(1) , 8
1wwrite &H44
End If
If X = 9 Then
'Waitms 300
1wreset
1wwrite &H55
1wwrite Tempsensor4(1) , 8
1wwrite &HBE
Ar4(1) = 1wread(9)
1wreset
Tmp4 = Ar4(1) And 1
If Tmp4 = 1 Then Decr Ar4(1)
T7 = Makeint(ar4(1) , Ar4(2))
T7 = T7 * 50
T7 = T7 - 25
T8 = Ar4(8) - Ar4(7)
T8 = T8 * 100
T8 = T8 / Ar4(8)
T7 = T7 + T8
T7 = T7 / 10
Temp4 = T7 / 10
End If
If X = 10 Then
'Waitms 500
1wreset
1wwrite &H55
1wwrite Tempsensor5(1) , 8
1wwrite &H44
End If
If X = 11 Then
'Waitms 300
1wreset
1wwrite &H55
1wwrite Tempsensor5(1) , 8
1wwrite &HBE
Ar5(1) = 1wread(9)
1wreset
Tmp5 = Ar5(1) And 1
If Tmp5 = 1 Then Decr Ar5(1)
T9 = Makeint(ar5(1) , Ar5(2))
T9 = T9 * 50
T9 = T9 - 25
T10 = Ar5(8) - Ar5(7)
T10 = T10 * 100
T10 = T10 / Ar5(8)
T9 = T9 + T10
T9 = T9 / 10
Temp5 = T9 / 10
X = 1
End If
Return
Lesezeichen