Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

ds18b20 - problem lub brak zrozumienia

elektronek
-
-
Posty:8
Rejestracja:30 gru 2010, o 22:26
Lokalizacja:Kraków
ds18b20 - problem lub brak zrozumienia

Postautor: elektronek » 17 kwie 2011, o 19:51

Witam
Komunikacja z ds18b20 jest , odczyt temperatury dodatniej też, natomiast problem pojawia się wraz z odczytem temperatury ujemnej. Zgodnie z dokumentacją przy temperaturach ujemnych bity 11 do 15 powinny przyjąć „1”. Po odczycie danych z ds. bity 11 do 15 zawierają „0” jak dla temperatury dodatniej.
Krótki kod

Kod: Zaznacz cały

$regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portb.6 , Rs = Portb.7 Cursor Off Config 1wire = Portb.1 Dim Temp As Word Dim Temp1 As Integer Do 1wreset 1wwrite &HCC 1wwrite &H44 Wait 1 1wreset 1wwrite &HCC 1wwrite &HBE Temp = 1wread(2) Temp1 = Temp * 10 Temp1 = Temp1 / 16 Cls 'Lcd Odczyt(1) ; Odczyt(2) ; Odczyt(3) ; Odczyt(4) ; Odczyt(5) ; Odczyt(6) Lcd Temp1 Lowerline Lcd Temp.15 ; Temp.14 ; Temp.13 ; Temp.12 ; Temp.11 ; Temp.10 ; Temp.9 ; Temp.8 ; Temp.7 ; Temp.6 ; Temp.5 ; Temp.4 ; Temp.3 ; Temp.2 ; Temp.1 ; Temp.0 Loop End
Przy temperaturach ujemnych powinienem zanegować bity 10 do 0 dodać 1 i wykonać obliczenia tak jak dla temperatury dodatniej a bity 11 do 15 powinny mnie informować „1” o temperaturze ujemnej.
Czy ja nie zrozumiałem datasheet, czy błędnie jest napisany przykładowy kod.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości