Witam,
Wzorując się na poradniku: www.ja(usun-to)glarz.com/ja/elektronika/ds18b20.pdf, napisałem funkcję:
Cytując za poradnikiem:
Funkcja zwraca mi zawsze 1, co jest tragiczne w skutkach w przypadku wypięcia termometru z układu - pomiar wykonuje się, choć nie powinien, i zwraca błędną wartość (255,255 - jakieś -0,6stC).
Czy w zacytowanym kodzie/poradniku jest błąd?
Wzorując się na poradniku: www.ja(usun-to)glarz.com/ja/elektronika/ds18b20.pdf, napisałem funkcję:
Kod: C / C++
Cytując za poradnikiem:
Cytat:Wszystkie czasy zawarte w powyższym kodzie wynikają z dokumentacji technicznej wysyłania i odbierania impulsu RESET i PRESENCE. Według dokumentacji układ Master powinien ustawić linie w stan niski na czas min. 480µs, następnie ustawić w poziom wysoki i oczekiwać na reakcje ze strony układu termometru. Układ termometru w momencie wykrycia impulsu RESET powinien wysłać na magistralę swój impuls PRESENCE, polegający na ustawienie magistrali w stan niski przez 60-240µs a następnie podciągnięcie w stan wysoki. Master ma zadanie wykryć tą sekwencję. W wypadku wykrycia zwraca do funkcji wartość jeden, w innym przypadku zero. Poniższa funkcja ilustruje sposób wysłania pojedynczego bitu do układu DS18B20.
Funkcja zwraca mi zawsze 1, co jest tragiczne w skutkach w przypadku wypięcia termometru z układu - pomiar wykonuje się, choć nie powinien, i zwraca błędną wartość (255,255 - jakieś -0,6stC).
Czy w zacytowanym kodzie/poradniku jest błąd?