Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 5 mar 2026, o 23:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 7 kwi 2017, o 17:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 lut 2017
Posty: 48
Pomógł: 4

Cześć

Napisałem program z użyciem bluebook-a na obsługę DS18B20 i wszystko działa.
Postanowiłem sam napisać prostą bibliotekę do obsługi tego czujnika z pomocą noty i innego pdf-a z internetu.
Układ poprawnie jest odczytywany, odczytuje mi LSB(1 bajt wysyłany przez czujnik po komendzie READSCRATCHPAD), natomiast
na MSB(2 bajt) pokazuje mi 0. Zorietnowałem się, że pokazuje mi tylko 2 część liczby(temp. to 25C, a wyświetlało 5C), dlatego też wyświetliłem sobie wartości bajtów LSB i MSB i stąd dowiedziałem się, że MSB=0. Na pewno jest gdzieś problem ale w sumie nie wiem gdzie.

Czujnik zasilany normalnie, dołączony do PC4->ATmega328P

BTW. W późniejszej wersji mam zamiar usunąć _delay na rzecz timerów

Pomożecie? :)

sensor.c

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


sensor.h

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 08:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 lut 2017
Posty: 48
Pomógł: 4

Dzięki kolego!
Zmodyfikowałem funkcję do odczytu i wszystko działa jak należy.
Ale czemu moja wersja nie działała.
W każdej iteracji odczytany bit przesuwałem na początek bajtu odebranych(czyli na pozycję msb) a następnie cały bajt przesuwałem w lewo o 1.
Wobec czego pierwszy odebrany bit po całej pętli powinien być prawidłowo na pozycji lsb.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2017, o 10:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 lut 2017
Posty: 48
Pomógł: 4

Specjalnie dla Ciebie cały plik źródłowy do obsługi DS18B20 w trybie normal power.
Funkcja główna to read_temp, do której przekazujesz adresy zmiennych do przechowywania temp, części dziesiętnej i znaku.
W funkcji main wysyłam te wartości poprzez UART do PC.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2017, o 06:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 lut 2017
Posty: 48
Pomógł: 4

Ten fragment napisałem stricte w oparciu o poniższe photo z noty katalogowej:

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO