Witam.
Mam problem z następującym kodem /fragment:
Czasem (zazwyczaj około 12 przestaje działać regulacja temperatury - zostaje cały czas na grzaniu.
Na wyświetlaczu też wyświetla napis "GRZANIE", czas się zmienia, prawidłowo wyświetla temperaturę.
Zmienna Pora typu Byte zmieniana jest o 6.00 i 21.00.
Zmienne Jaka_temp i Jaka_tempn to single.
Procesor na wewnętrznym oscylatorze 8MHz.
Co jest nie tak?
Rafał
Mam problem z następującym kodem /fragment:
Do
Call Wezczas
If Menu = 0 Then 'glowny program
Call Wyswczas
Waitms 300
If Przeszlo = 0 Then
1wreset 'reset
1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
1wwrite &H44
End If
Incr Przeszlo
If Przeszlo > 3 Then
1wreset 'reset
1wwrite &HCC 'rozkaz adresowy SKIP ROM
1wwrite &HBE 'rozkaz funkcyjny - polecenie odczytu DS18x20
Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty
T = Odczyt(2) 'przepisz starszy bajt do zmiennej typu Integer
Shift T , Left , 8 'przesuń ten bajt w lewo na wyższe pozycje
T = T + Odczyt(1) 'przepisz - dodaj młodszy bajt
T1 = T * 0.0625
'wyraź w stopniach Celsjusza, wynik wpisz do zmiennej Single
Napis = Fusing(t1 , "#.#")
Locate 1 , 11 : Lcd Napis ; Chr(1) ; "C"
Przeszlo = 0
End If
'sprawdzanie warunków temperatura
If Pora = 1 Then
Jaka_temp = Jaka_temp - 0.2
If Jaka_temp >= T1 Then
Grzanie = 1
Reset Grzalka
End If
Jaka_temp = Jaka_temp + 0.4
If Jaka_temp <= T1 Then
Grzanie = 0
Set Grzalka
End If
Jaka_temp = Jaka_temp - 0.2
Else
Jaka_tempn = Jaka_tempn - 0.2
If Jaka_tempn >= T1 Then
Grzanie = 1
Reset Grzalka
End If
Jaka_tempn = Jaka_tempn + 0.4
If Jaka_tempn <= T1 Then
Grzanie = 0
Set Grzalka
End If
Jaka_tempn = Jaka_tempn - 0.2
End If
If Grzanie = 1 Then
Locate 2 , 11 : Lcd "GRZANIE"
Else
Locate 2 , 11 : Lcd " "
End If
Waitms 10
End If
Loop
Czasem (zazwyczaj około 12 przestaje działać regulacja temperatury - zostaje cały czas na grzaniu.
Na wyświetlaczu też wyświetla napis "GRZANIE", czas się zmienia, prawidłowo wyświetla temperaturę.
Zmienna Pora typu Byte zmieniana jest o 6.00 i 21.00.
Zmienne Jaka_temp i Jaka_tempn to single.
Procesor na wewnętrznym oscylatorze 8MHz.
Co jest nie tak?
Rafał