logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Bascom AVR – odczyt temperatury z DS18B20, konwersja danych na wynik Celsiusza

kundzios 29 Sie 2006 13:53 3262 8

Podsumowanie tematu

✨ Dyskusja dotyczy problemu odczytu temperatury z czujnika DS18B20 za pomocą Bascom AVR. Autor zna sposób odczytu z DS1820, ale ma trudności z interpretacją danych z DS18B20, gdzie oba bajty zawierają wynik temperatury, w przeciwieństwie do DS1820, gdzie drugi bajt przy ujemnej temperaturze ma wartość 255. Zaproponowano prosty algorytm odczytu: reset magistrali 1-wire, wysłanie komend &HCC i &HBE, odczyt dwóch bajtów, połączenie ich funkcją Makeint w zmienną typu integer, obliczenie wartości bezwzględnej (Abs) i konwersję na stopnie Celsjusza przez podzielenie przez 16. Zwrócono uwagę, że zmienne odczytowe mogą być typu byte, a wynikowa temperatura powinna być typu integer. Zalecane jest wywoływanie odczytu co minimum 750 ms. Omówiono znaczenie funkcji Makeint (łączenie dwóch bajtów w jedną liczbę) oraz Abs (wartość bezwzględna). Podano link do podobnej dyskusji z alternatywnym algorytmem. Autor potwierdził lepsze zrozumienie problemu i gotowość do dalszych pytań.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA