Witam
Wykonalem termometr na czujniku DS18B20, zaprogramowałem procesor wg kodu znalezionego w sieci, podaje kod:
Nie mogę zrozumiec pewnej rzeczy:
Proszę poprawić treść wiadomości - regulamin p.15
Kod umieszczamy w znacznikach [code] - poprawiłem.
[zumek]
Wykonalem termometr na czujniku DS18B20, zaprogramowałem procesor wg kodu znalezionego w sieci, podaje kod:
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Pinb.1 = Output
Config Portc = Output
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config 1wire = Portb.0
Dim Bd(2) As Byte
Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 'wykoanie znaku "stopni"
Cursor Off
Dim T As Integer
Dim Ulamek As Integer
Cls
Do
Gosub Ds1820
Cls
Lcd "temp: " ; T ; "," ; Ulamek ; Chr(0)
Loop
End
Ds1820:
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 250
Waitms 250
1wreset
1wwrite &HCC
1wwrite &HBE
Bd(1) = 1wread(9)
1wreset
T = Makeint(bd(1) , Bd(2))
T = T * 10
T = T / 16
Ulamek = T Mod 10
T = T / 10
If T > 19 Then
Portb.1 = 0
Else
Portb.1 = 1
End If
1wreset
If Err = 1 Then
Cls
Lcd "brak odczytu"
Wait 2
End If
Return
Nie mogę zrozumiec pewnej rzeczy:
1. Dim Bd(2) As Byte - definicja tablicy do przechowywania dwóch bajtów
2. Bd(1) = 1wread(9) - zapisanie do pierwszego elementu tablicy
T = Makeint(bd(1) , Bd(2)) - łaczy dwa bajty w zmienną ( ale skąd jest wziety ten drugi bajt, drugi element tablicy skoro w całym programie nie był nigdzie zapisany?)
T = T * 10
T = T / 16 - skąd ten wzór ta cyfra 16?
Proszę poprawić treść wiadomości - regulamin p.15
Kod umieszczamy w znacznikach [code] - poprawiłem.
[zumek]