Witam wszystkich przeczytałem wiekszość postów ale jakoś nie moge znaleść rozwiazania na swoj problem a mianowicie chodzi o odczyt ID wklejam program
$large
Cursor Off
Cls
Config Lcd = 16 * 2
Config 1wire = P1.0
Dim T1 As Single
Dim T2 As Single
Dim B1 As Byte , B2 As Byte , R As Byte , B3 As Byte , B4 As Byte
Dim Tmp As String * 6
Dim Znak As String *6
Dim W As Word
Dim Ar(8) As Byte , I As Byte
Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim Dsid3(8) As Byte
R = &HFF
Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32
W = 1wirecount(ar(1))
Lcd "ERR=" ; Err ; " przy " ; W ; " urządzeniach."
Wait 2
Cls
Dsid1(1) = 1wsearchfirst()
For I = 1 To 8
Lcd Dsid1(i);
Next I
Wait 2
Cls
Dsid2(1) = 1wsearchnext()
For I = 1 To 8
Lcd Dsid2(i);
Next I
Wait 2
Cls
Dsid3(1) = 1wsearchnext() //w tym miejscu pokazuje mi numer // pierwszego wykrytego
For I = 1 To 8
Lcd Dsid3(i);
Next I
Wait 2
Cls
Do
1wreset
1wwrite &H55
1wwrite Dsid1(1) , 8
1wwrite &H44
Waitms 50
1wreset
1wwrite &H55
1wwrite Dsid1(1) , 8
1wwrite &HBE
B1 = 1wread()
B2 = 1wread()
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Znak = "-"
Else
Znak = "+"
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
Tmp = Fusing(t1 , ###.&&)
Locate 1 , 1
Lcd Znak ; Tmp ; Chr(1) ; "C "
1wreset
1wwrite &H55
1wwrite Dsid2(1) , 8
1wwrite &H44
Waitms 50
1wreset
1wwrite &H55
1wwrite Dsid2(1) , 8
1wwrite &HBE
B3 = 1wread()
B4 = 1wread()
If B4 >= 248 Then
B3 = R - B3
B4 = R - B4
Znak = "-"
Else
Znak = "+"
End If
T1 = B3 / 16
T2 = B4 * 16
T1 = T1 + T2
Tmp = Fusing(t1 , ###.&&)
Locate 1 , 9
Lcd Znak ; Tmp ; Chr(1) ; "C "
1wreset
1wwrite &H55
1wwrite Dsid3(1) , 8
1wwrite &H44
Waitms 50
1wreset
1wwrite &H55
1wwrite Dsid3(1) , 8
1wwrite &HBE
B3 = 1wread()
B4 = 1wread()
If B4 >= 248 Then
B3 = R - B3
B4 = R - B4
Znak = "-"
Else
Znak = "+"
End If
T1 = B3 / 16
T2 = B4 * 16
T1 = T1 + T2
Tmp = Fusing(t1 , ###.&&)
Locate 2 , 1
Lcd Znak ; Tmp ; Chr(1) ; "C "
Loop
A moj problem polega na tym iz program wykrywa mi trzy czujniki wypisuje trzy ID lecz trzeci tak jak by kopiował pierwszy czyli naprawde widzi tylko dwa i nie wiem co jest???
$large
Cursor Off
Cls
Config Lcd = 16 * 2
Config 1wire = P1.0
Dim T1 As Single
Dim T2 As Single
Dim B1 As Byte , B2 As Byte , R As Byte , B3 As Byte , B4 As Byte
Dim Tmp As String * 6
Dim Znak As String *6
Dim W As Word
Dim Ar(8) As Byte , I As Byte
Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim Dsid3(8) As Byte
R = &HFF
Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32
W = 1wirecount(ar(1))
Lcd "ERR=" ; Err ; " przy " ; W ; " urządzeniach."
Wait 2
Cls
Dsid1(1) = 1wsearchfirst()
For I = 1 To 8
Lcd Dsid1(i);
Next I
Wait 2
Cls
Dsid2(1) = 1wsearchnext()
For I = 1 To 8
Lcd Dsid2(i);
Next I
Wait 2
Cls
Dsid3(1) = 1wsearchnext() //w tym miejscu pokazuje mi numer // pierwszego wykrytego
For I = 1 To 8
Lcd Dsid3(i);
Next I
Wait 2
Cls
Do
1wreset
1wwrite &H55
1wwrite Dsid1(1) , 8
1wwrite &H44
Waitms 50
1wreset
1wwrite &H55
1wwrite Dsid1(1) , 8
1wwrite &HBE
B1 = 1wread()
B2 = 1wread()
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Znak = "-"
Else
Znak = "+"
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
Tmp = Fusing(t1 , ###.&&)
Locate 1 , 1
Lcd Znak ; Tmp ; Chr(1) ; "C "
1wreset
1wwrite &H55
1wwrite Dsid2(1) , 8
1wwrite &H44
Waitms 50
1wreset
1wwrite &H55
1wwrite Dsid2(1) , 8
1wwrite &HBE
B3 = 1wread()
B4 = 1wread()
If B4 >= 248 Then
B3 = R - B3
B4 = R - B4
Znak = "-"
Else
Znak = "+"
End If
T1 = B3 / 16
T2 = B4 * 16
T1 = T1 + T2
Tmp = Fusing(t1 , ###.&&)
Locate 1 , 9
Lcd Znak ; Tmp ; Chr(1) ; "C "
1wreset
1wwrite &H55
1wwrite Dsid3(1) , 8
1wwrite &H44
Waitms 50
1wreset
1wwrite &H55
1wwrite Dsid3(1) , 8
1wwrite &HBE
B3 = 1wread()
B4 = 1wread()
If B4 >= 248 Then
B3 = R - B3
B4 = R - B4
Znak = "-"
Else
Znak = "+"
End If
T1 = B3 / 16
T2 = B4 * 16
T1 = T1 + T2
Tmp = Fusing(t1 , ###.&&)
Locate 2 , 1
Lcd Znak ; Tmp ; Chr(1) ; "C "
Loop
A moj problem polega na tym iz program wykrywa mi trzy czujniki wypisuje trzy ID lecz trzeci tak jak by kopiował pierwszy czyli naprawde widzi tylko dwa i nie wiem co jest???