Witam
Mam problem z programem, który został umieszczony w książce (osła łączka). Program został napisany pod attiny2313 lecz niestety podczas kompilacji wyskakuje błąd:
Reserved word may not be used [Adr]
Assignment error [X: 0 1: 112]
Assignment error[ADR(X):0 1WSEARCHFIRST(): 200]
i jak zmienie ADR na ADRE to błędy znikają, ale pojawia się następny:
Program will overwrite bootloader [32 too long]
Kod:
' C032g z dwoma DS18B20 tylko z zasilaniem zewnętrznym przez VDD
Config 1wire = Portd.5 ' + jumper J2 B-C
Dim T As Integer , T1 As Single
Dim Adr(16) As Byte , I As Byte , X As Byte
X = 1 : Adr(x) = 1wsearchfirst() 'znajdź pierwszy adres
X = 9 : Adr(x) = 1wsearchnext() 'znajdź drugi adres
Do
Toggle X.3 'ustawia X=1 albo X=9
' odczytaj "starą" wartość temperatury:
1wreset : 1wwrite &H55 : 1wwrite Adr(x) , 8 : 1wwrite &HBE
T = 1wread(2) 'od razu wpisz do zmiennej typu Integer
Shift T , Right , 2 'odpowiednik dzielienia przez 4
If T.13 = 1 Then 'jeśli temperatura ujemna
T = T Or &B1100000000000000 'uzupełnij jedynki znaku
End If
T1 = T 'przepisz do zmiennej Single
Shift T1 , Right , 2 'SHIFT działa na zmiennej Single
If X.3 = 0 Then 'X=1 - pierwszy czujnik
Waitms 1000 'pomiary co sekundę
Cls 'w górnej linii będzie temperatura T0
Else 'X=9 - drugi czujnik
Lowerline 'w dolnej linii będzie temperatura T1
End If
Lcd "T" ; X.3 ; "=" ; T1 ; "oC" 'wyświetl T0, T1
' a teraz zmierz "wową" wartość temperatury:
1wreset : 1wwrite &H55 : 1wwrite Adr(x) , 8 : 1wwrite &H44
Loop : End 'koniec programu głównego
Jest mi ktoś w stanie pomóc z tym? Z góry dziękuję za wszelką pomoc
Pozdrawiam
Proszę kod umieścić w znacznikach code!
Robak
Mam problem z programem, który został umieszczony w książce (osła łączka). Program został napisany pod attiny2313 lecz niestety podczas kompilacji wyskakuje błąd:
Reserved word may not be used [Adr]
Assignment error [X: 0 1: 112]
Assignment error[ADR(X):0 1WSEARCHFIRST(): 200]
i jak zmienie ADR na ADRE to błędy znikają, ale pojawia się następny:
Program will overwrite bootloader [32 too long]
Kod:
' C032g z dwoma DS18B20 tylko z zasilaniem zewnętrznym przez VDD
Config 1wire = Portd.5 ' + jumper J2 B-C
Dim T As Integer , T1 As Single
Dim Adr(16) As Byte , I As Byte , X As Byte
X = 1 : Adr(x) = 1wsearchfirst() 'znajdź pierwszy adres
X = 9 : Adr(x) = 1wsearchnext() 'znajdź drugi adres
Do
Toggle X.3 'ustawia X=1 albo X=9
' odczytaj "starą" wartość temperatury:
1wreset : 1wwrite &H55 : 1wwrite Adr(x) , 8 : 1wwrite &HBE
T = 1wread(2) 'od razu wpisz do zmiennej typu Integer
Shift T , Right , 2 'odpowiednik dzielienia przez 4
If T.13 = 1 Then 'jeśli temperatura ujemna
T = T Or &B1100000000000000 'uzupełnij jedynki znaku
End If
T1 = T 'przepisz do zmiennej Single
Shift T1 , Right , 2 'SHIFT działa na zmiennej Single
If X.3 = 0 Then 'X=1 - pierwszy czujnik
Waitms 1000 'pomiary co sekundę
Cls 'w górnej linii będzie temperatura T0
Else 'X=9 - drugi czujnik
Lowerline 'w dolnej linii będzie temperatura T1
End If
Lcd "T" ; X.3 ; "=" ; T1 ; "oC" 'wyświetl T0, T1
' a teraz zmierz "wową" wartość temperatury:
1wreset : 1wwrite &H55 : 1wwrite Adr(x) , 8 : 1wwrite &H44
Loop : End 'koniec programu głównego
Jest mi ktoś w stanie pomóc z tym? Z góry dziękuję za wszelką pomoc
Pozdrawiam
Proszę kod umieścić w znacznikach code!
Robak