Witam !
Skopiowalem sobie z Helpa bascomu taki oto kod... chce to skompilowac ale wywala blad najpierw przy:
W = 1wirecount(ar(1))
pozniej:
Ar(1) = 1wsearchfirst()
Ar(1) = 1wsearchnext()
Posiadam taki procesor jak jest zadeklarowany w kodzie...ale za Chiny nie chce to ruszyc
Bede wdzieczny za pomoc!!
pozdrawiam!
Skopiowalem sobie z Helpa bascomu taki oto kod... chce to skompilowac ale wywala blad najpierw przy:
W = 1wirecount(ar(1))
pozniej:
Ar(1) = 1wsearchfirst()
Ar(1) = 1wsearchnext()
Posiadam taki procesor jak jest zadeklarowany w kodzie...ale za Chiny nie chce to ruszyc
'------------------------------------------------------------------
' 1wirecount.bas
' (c) 2002 MCS Electronics
' Demonstarcja użycia wielu urządzeń na magistrali
'------------------------------------------------------------------
'definicja użytego kontrolera
$regfile = "89s8252.dat"
'jaki rezonator kwarcowy
$crystal = 16000000
'szybkośc transmisji
$baud = 4800
'czekaj 500 ms
Waitms 500
'Używamy końcówki:
'Podłącz rezystor 4K7 między końcówkę a szynę zasilania
Config 1wire = P2.6
'potrzebna będzie tablica 8 bajtów dla numerów ID
Dim Ar(8) As Byte
'potrzebny będzie także zmienna przeznaczona na licznik i zmienna typu Word
Dim I As Byte , W As Word
'Klika numerów ID które przetestowałem
' 01 51 B5 8D 01 00 00 56
' 01 84 B3 8D 01 00 00 E5
Print "start"
'odczytaj liczbę urządzeń na magistrali
W = 1wirecount(ar(1))
'Wydrukuj stan znacznika błędu oraz ile znaleziono urządzeń
Print "ERR=" ; Err ; " przy " ; W ; " urządzeniach."
'teraz odczytyamy dane z pierwszego urządzenia
Ar(1) = 1wsearchfirst()
'wydrukuj numer ID
For I = 1 To 8
Printhex Ar(i);
Next
Print
'Ja uzyskałem rezultat, że jest więcej niż 1 urządzenie na magistrali
Do
'następne urządzenie
Ar(1) = 1wsearchnext()
'wydrukuj numer ID
For I = 1 To 8
Printhex Ar(i);
Next
Print
Loop Until Err = 1
'jeśli ERR jest ustawiona znaczy to, że nie ma innych urządzeń
'WAŻNE! 1WSEARCHFIRST oraz następna funkcja wymaga by tablica była taka sama
'W tym przypadku jest nią Ar(1)
'Jeśli znasz numer urządzenia, możesz go wtedy zaadresować
EndBede wdzieczny za pomoc!!
pozdrawiam!