Pisząc program w Bascom-AVR IDE [1.11.9.5] nie mogę sobie poradzić z przekazaniem parametrów do procedury. Kompilator domaga się umieszczenia w deklaracji procedury słowa Byval, inaczej wykazuje błedy i nie kompiluje programu. Niestety w wewnątrz procedury wartości parametrów są inne niż te które miały być przekazane - tak działo się we właściwym programie.
Gdy wyselekcjonowałem ten fragment to wartość parametrów wewnątrz procedury jest równa zero. Kombinowałem na różne sposoby jak się tylko dało i za każdym razem to samo.
Gdzie zrobiłem błąd? Już nie wiem o co chodzi.
Poniżej ten fragment programu:
To co wyświetla LCD:
64 8 4 do Call
0 0 0 w Subb
Pierwsza linia jest prawidłowa, a druga już nie.
I dlaczego jest powtórzony ostatni znak? Również powtarzał się gdy nie umieściłem napisu (było wtedy na końcu drugie zero).
Gdy wyselekcjonowałem ten fragment to wartość parametrów wewnątrz procedury jest równa zero. Kombinowałem na różne sposoby jak się tylko dało i za każdym razem to samo.
Gdzie zrobiłem błąd? Już nie wiem o co chodzi.
Poniżej ten fragment programu:
$regfile = "m8def.dat" 'typ procesora
$crystal = 1000000 'zegar [Hz]
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.3 , Rs = Portd.1
Config Lcd = 16 * 2
Const Kranc_g = &H80
Const Kranc_d = &H40
Const P2 = &H04
Const P3 = &H08
Dim Kranc As Byte , S1 As Byte , S2 As Byte
Dim Io As Byte , Mask As Byte
Declare Sub Ruch(byval Kranc As Byte , Byval S1 As Byte , Byval S2 As Byte)
'--------------------------------
Cls
Lcd Kranc_d ; " " ; P3 ; " " ; P2 ; " do Call" 'parametry przekazywane
Call Ruch(kranc_d , P3 , P2) 'jazda w dol
'********************************
Sub Ruch(byval Kranc As Byte , Byval S1 As Byte , Byval S2 As Byte) 'ruch
Lowerline
Lcd Kranc ; " " ; S1 ; " " ; S2 ; " a to w Sub" 'parametry przekazane
End Sub
To co wyświetla LCD:
64 8 4 do Call
0 0 0 w Subb
Pierwsza linia jest prawidłowa, a druga już nie.
I dlaczego jest powtórzony ostatni znak? Również powtarzał się gdy nie umieściłem napisu (było wtedy na końcu drugie zero).
