Witam,
Zaczynam naukę BASCOM'a, uczę się go głównie po to, aby stworzyć urządzenie, które będzie sterować podajnikiem do pieca oraz wentylatorem.
Napisałem sobie pewien programik, bardzo łatwy, zaledwie Do:Loop i kilka zmiennych, wszystko ładnie się kompiluje, więc postanowiłem go trochę udoskonalić poprzez instrukcję If Then, ale niestety tu już zaczęły się schody.
Proszę nie zwracać uwagi na wyrażenie po If, bo jeszcze nie wiem w jaki sposób zapisywać odczytaną temperaturę z czujnika, który będzie podłączony, ale to już kwestia doczytania co zrobię później na razie chcę się dowiedzieć czemu ten kod wywala mi błędy.
Program:
Czemu wywala np. błąd, że nie ma End If, skoro jest?
Z góry dzięki za pomoc.
Zaczynam naukę BASCOM'a, uczę się go głównie po to, aby stworzyć urządzenie, które będzie sterować podajnikiem do pieca oraz wentylatorem.
Napisałem sobie pewien programik, bardzo łatwy, zaledwie Do:Loop i kilka zmiennych, wszystko ładnie się kompiluje, więc postanowiłem go trochę udoskonalić poprzez instrukcję If Then, ale niestety tu już zaczęły się schody.
Proszę nie zwracać uwagi na wyrażenie po If, bo jeszcze nie wiem w jaki sposób zapisywać odczytaną temperaturę z czujnika, który będzie podłączony, ale to już kwestia doczytania co zrobię później na razie chcę się dowiedzieć czemu ten kod wywala mi błędy.
Program:
$regfile = "2313def.dat" 'program jest pisany na procesor attinny2313
$crystal = 4000000 'procesor będzie pracował z kwarcem bądź na wewnętrznym oscylatorze 4Mhz
Config Portb = Input 'port b jako wejścia
Portb = &B00000000 'wszędzie stan spoczynkowy-0
Config Portd = Output 'port d jako wyjścia
Portd = &B0000000 'wszędzie stan spoczynkowy-0
Do
If Pinb.0 =< 30 Then 'jeżeli temperatura jest mniejsza niż 30'C
Portd.0 = 1 'włącz podajnik
Portd.1 = 1 'włącz wentylator
Wait 300 'czekaj 5 minut
Portd.0 = 0 'wyłącz podajnik
Wait 120 'czekaj 2 minuty
Portd.1 = 0 'wyłącz wentylator
Elseif Pinb.0 => 30 < 50 'jeżeli temperatura wynosi 30-50'C
Portd.0 = 1 'włącz podajnik
Portd.1 = 1 ' włącz wentylator
Wait 360 'czekaj 6 minut
Portd.0 = 0 'wyłącz podajnik
Wait 60 'czekaj 60 sekund
Portd.1 = 0 'wyłącz wentylator
Elseif Pinb.0 => 50 < 70
Portd.0 = 1 'włącz podajnik
Portd.1 = 1 'włącz wentylator
Wait 480 'czekaj 8 minut
Portd.0 = 0 'wyłącz podajnik
Portd.1 = 0 'wyłącz wentylator
Wait 300 'czekaj 5 minut
Portd.1 = 1 'włącz wentylator
Wait 120 'czekaj 2 minuty
Portd.1 = 0 'wyłącz wentylator
End If
Loop
End[/quote]
[quote]
Error : 36 Line : 21 THEN expected , in File
Error : 36 Line : 29 THEN expected , in File
Error : 7 Line : 0 IF THEN expected [ 29] , in File :
Error : 123 Line : 0 END IF expected , in File :Czemu wywala np. błąd, że nie ma End If, skoro jest?
Z góry dzięki za pomoc.