Witam.
Mam problem z napisaniem sterowania grzałką do wytrawiarki. Program ma za zadanie wyświetlać na LCD aktualną temp. i grzanie/niegrzanie płynu. Po naciśnięciu S1 wchodzę w opcje do ustawiania temperatury docelowej (S2 do góry, S3 w dół). Cały problem polega na tym, że przycisk S1 w ogóle nie reaguje (nie wchodzi do menu, wyświetla tylko sub praca). Zamieszczam okrojony kod źródłowy (bez konfigu lcd i dim-ów).
Mam problem z napisaniem sterowania grzałką do wytrawiarki. Program ma za zadanie wyświetlać na LCD aktualną temp. i grzanie/niegrzanie płynu. Po naciśnięciu S1 wchodzę w opcje do ustawiania temperatury docelowej (S2 do góry, S3 w dół). Cały problem polega na tym, że przycisk S1 w ogóle nie reaguje (nie wchodzi do menu, wyświetla tylko sub praca). Zamieszczam okrojony kod źródłowy (bez konfigu lcd i dim-ów).
Code:
Dim S As Bit 'flaga
Grzanie Alias Portd.6
Declare Sub Menu 'menu do ustawiania temp. żądanej
Declare Sub Praca 'główny program
Cursor Off
Cls
Do
If Pinc.0 = 0 Then
S = 1 'flaga
Call Menu
Else
Call Praca
Loop
End
Sub Praca
1wreset 'reset 1wire
1wwrite &HCC 'rozkaz skip rom
1wwrite &H44 'dokonaj konwersji temperatury
Waitms 750 'przeczekaj konwersję
1wreset
1wwrite &HCC 'rozkaz skip rom
1wwrite &HBE 'polecenie odczytu DS-a
Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty do zmiennej
T = Odczyt(2) 'przepisuje starszy bajt do zmiennej Integer
Shift T , Left , 8 'przesuwa ten bajt w lewo na wyższe pozycje
T = T + Odczyt(1) 'przepisz i dodaj młodszy bajt
Waitms 25
T1 = T * 10
T1 = T / 16 'wyraź w st. celsjusza i wpisz do zmiennej single
F = Str(t1) 'wpisz odczyt do string
F = Fusing(t1 , "#.#") 'ustaw format wyświetlania
Locate 1 , 1
Lcd Chr(2) ; F ; Chr(0)
Th1 = Tr + 1 'histereza
Th2 = Tr - 1
If T1 >= Th1 Then
Grzanie = 0
End If
If T1 <= Th2 Then
Grzanie = 1
Locate 2 , 1
Lcd "Grzanie"
End If
End Sub
Sub Menu
Locate 1 , 1
Lcd " Temp docelowa: "
Locate 2 , 6
Lcd Tr ; Chr(0)
If Pinc.1 = 0 Then
Incr Tr
End If
If Pinc.2 = 0 Then
Decr Tr
End If
If Pinc.0 = 0 Then
Waitms 250
If Pinc.0 = 0 Then
S = 0
End If
End If
End If
End Sub
Return