Witam, on niedawna uczę się Bascoma i chcę stworzyć układ który będzie dbał o zapalanie światła w określonym czasie. Oczywiście czas będzie ustalany przez użytkownika np od 15:30 do 16:43. Mam taki pomysł żeby godzinę zamienić na liczbę np 1530 i 1643 jeśli czas przeliczony na liczbę będzie pomiędzy to na pinie C.5 będzie stan wysoki. Na co dzień programuje w C++ ale w uC wole zacząć od bascoma zamiast C# i mam problem z instrukcją "if" jeśli zostawię to tak :
to odostaję błąd 61 label not fund [_ENDIF0 ]
jeśli dodam end if to :
otrzymuje całą listę błędów :
error 28 Spodziewano się IF..THEN
error 7 Spodziewana instrukcja IF..THEN
error 124 loop expected
Poniżej zamieszczam cały kod. Oczywiście jeszcze nei dokończony ale byłbym wdzięczny za pomoc. Jak ma wyglądać ta instrukcja?
If Czas > Roz Or Czas < Zak Then Portc.5 = 1
Else
Portc.5 = 0to odostaję błąd 61 label not fund [_ENDIF0 ]
jeśli dodam end if to :
If Czas > Roz Or Czas < Zak Then Portc.5 = 1
Else
Portc.5 = 0
End If
otrzymuje całą listę błędów :
error 28 Spodziewano się IF..THEN
error 7 Spodziewana instrukcja IF..THEN
error 124 loop expected
Poniżej zamieszczam cały kod. Oczywiście jeszcze nei dokończony ale byłbym wdzięczny za pomoc. Jak ma wyglądać ta instrukcja?
$regfile = "m8def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
Config Scl = Portb.2 'config i2c
Config Sda = Portb.1
Config Pinc.5 = Output 'pin c.5 jako wyjście
Pinc.5 = 0 'stan 0
Dim M As Byte 'minuty
Dim S As Byte 'sekundy
Dim H As Byte 'godziny
Dim Roz As Integer 'rozpoczęcie
Dim Zak As Integer 'zakończenie
Dim Czas As Integer
Dim Mroz As Integer 'minuty rozpoczęcia
Dim Hroz As Integer 'godzina rozpoczęcia
Dim Mzak As Integer 'minuty zakonczenia
Dim Hzak As Integer 'gdzina zakonczenia
Mroz = 58 'przykładowe wartości
Hroz = 23 'przykładowe wartości
Mzak = 2 'przykładowe wartości
Hzak = 0 'przykładowe wartości
Cursor Off
'procedura wpisania przykładowej godziny do testów
S = Makebcd(30)
M = Makebcd(57)
H = Makebcd(23)
I2cstart
I2cwbyte 162
I2cwbyte 0
I2cwbyte 8
I2cstop
I2cstart
I2cwbyte 162
I2cwbyte 2
I2cwbyte S
I2cwbyte M
I2cwbyte H
I2cstop
Roz = Hroz * 100 'łączenie godzin i minut w celu porównania
Roz = Roz + Mroz
Zak = Hzak * 100 'łączenie godzin i minut w celu porównania
Zak = Zak + Mzak
Do
I2cstart 'procedura odczytu godziny
I2cwbyte 162
I2cwbyte 2
I2cstart
I2cwbyte 163
I2crbyte S , Ack
I2crbyte M , Ack
I2crbyte H , Nack
I2cstop
S = Makedec(s) 'konwersja liczb
M = Makedec(m)
H = Makedec(h)
Czas = H * 100 'łączenie godzin i minut w celu porównania
Czas = Czas + M
If Czas > Roz Or Czas < Zak Then Portc.5 = 1
Else
Portc.5 = 0
'End If
Cls
Lcd H ; ":" ; M ; ":" ; S
Wait 1
Loop
End 'end program