Mam podłączony czujnik DS18B20 (1wire)
i taki kodzik:
Kod: Zaznacz cały
'Jednopunktowy termometr z czujnikiem DS18B20
'www.portalnaukowy.edu.pl
'Program na podstawie kursu z ksiażki "Mikrokontrolery dla Poczatkujacych" Pana Piotra Góreckiego
$crystal = 4000000                  'deklaracja częstotliwosci pracy kwarcu
$regfile "attiny2313.dat"               'model procesora dla którego jest ten program
Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32        ' definicja znaki stopnia
Config 1wire = Portd.5                                      ' konfiguracja portu PD.5 jako wescia magistrali 1-wire
Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Napis As String * 5
'Deklaracja wszystkich zmiennych potrzebnych do pracy programu
Do
  1wreset                                                   'reset
  1wwrite &HCC                                              'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
  1wwrite &H44                                              'dokonaj konwersji
  Waitms 750                                                'przeczekaj czas konwersji
  1wreset                                                   'reset
  1wwrite &HCC                                              'rozkaz adresowy SKIP ROM
  1wwrite &HBE                                              'rozkaz funkcyjny - polecenie odczytu DS18x20
  Odczyt(1) = 1wread(2)                                     'odczytaj dwa pierwsze bajty
  T = Odczyt(2)                                             'przepisz starszy bajt do zmiennej typu Integer
  Shift T , Left , 8                                        'przesuń ten bajt w lewo na wyższe pozycje
  T = T + Odczyt(1)                                         'przepisz - dodaj młodszy bajt
  T1 = T * 0.0625                                               'wyraz w stopniach Celsjusza, wynik wpisz do zmiennej Single
Napis = Fusing(t1 , "#.#")
  Cls : Cursor Off : Lcd "* Temperatura *"
  Lowerline
  Lcd "Wynik: " ; Napis ; " " ; Chr(1) ; "C"                'wyswietl wynik ze zmiennej Single
Loop : End
'Powodzenia
No i moje pytanie jest w jaki sposób to działa.
Dokładnie interesuje mnie tutaj zastosowanie tablic.
Odczyt(1) = 1wread(2) 'Tutaj się domyślam, że w zmiennej Odczyt(1) jest kod odczytany z czujnika (np. 0000 0101 0101 0000)
ale
T = Odczyt(2) to dla mnie już czarna magia..
Jakie informacje są w Zmiennej Odczyt(2)?

