Już któreś z kolei podejście do tematu jednak dalej brak rozwiązania
Problem wygląda tak:
Potrzebuję termometr na dwóch DS 18B20 Na razie zaprzęgłem jeden i w pętli co kilka sekund (czyli co kilka pomiarów) wyświetla mi 0,0 st C lub inną absttrakcyjną wartość np 95,5 przez jeden pomiar. Próbowałem różnych rozwiązań na chwile obecną program wygląda mniej więcej tak:
Przeliczanie temperatur jest właściwe, bo większość pomiarów wskazuje dobrą temperaturę Wg mnie problem tkwi w komunikacji z DS-em, podejrzewam, że co któryś pomiar odpowiedź z Ds-a jest błędna Proszę kolegów o jakąś podpowiedź Być może nie widzę jakiegoś oczywistego błędu, choć ten sam sposób odczytu Ds-a w układzie na wyświetlacz LCD nie sprawia najmniejszych kłopotów Bardzo proszę o pomoc. Dodam jeszcze, że sam DS jest właściwie podciągnięty rezystorem, Czy może na przykład odczyt Ds-a zakłócać sie z przerwaniami od timera?
Problem wygląda tak:
Potrzebuję termometr na dwóch DS 18B20 Na razie zaprzęgłem jeden i w pętli co kilka sekund (czyli co kilka pomiarów) wyświetla mi 0,0 st C lub inną absttrakcyjną wartość np 95,5 przez jeden pomiar. Próbowałem różnych rozwiązań na chwile obecną program wygląda mniej więcej tak:
Deklaracja zmiennych i portów (tutaj wszystko gra)
Do
1wreset
1wwrite &HCC
1wwrite &H44
Wait 1 ' na konwersję
1wreset
1wwrite &HCC
1wwrite &HBE
B1 = 1wread() ' odczyt i obliczenia
B2 = 1wread()
1wreset
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Znak1 = 0 '-'
Else
Znak1 = 1 '+'
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
D1 = Int(t1)
T1 = Frac(t1)
Cyfra1 = D1 / 10
Cyfra2 = D1 Mod 10
Cyfra3 = T1 * 10
Loop
tutaj program wyświetlania w przerwaniach od Timera 1 Przeliczanie temperatur jest właściwe, bo większość pomiarów wskazuje dobrą temperaturę Wg mnie problem tkwi w komunikacji z DS-em, podejrzewam, że co któryś pomiar odpowiedź z Ds-a jest błędna Proszę kolegów o jakąś podpowiedź Być może nie widzę jakiegoś oczywistego błędu, choć ten sam sposób odczytu Ds-a w układzie na wyświetlacz LCD nie sprawia najmniejszych kłopotów Bardzo proszę o pomoc. Dodam jeszcze, że sam DS jest właściwie podciągnięty rezystorem, Czy może na przykład odczyt Ds-a zakłócać sie z przerwaniami od timera?
