Witam koledzy!
Mam problem z pomiarem temperatury, przeszukałem forum i internet n razy w poszukiwaniu odpowiedzi ale nie natrafiłem na żaden trop. Sądzę, że błąd leży gdzieś w kodzie.
Wynik pomiaru docelowo jest prezentowany na LCD 2x16.
Pomiędzy VCC a DQ mam rezystor 4,7k zgodnie z notą DS'a (nie w trybie pasożytniczym)
Atmega podłączona zgodnie z zasadami jej zasilania odpowiednia filtracja itd dodatkowo zasilanie z zasilacza stabilizowanego więc wszystko powinno grać.
Taktowanie wewnętrzne 8MHz
Problem w tym, że gdy DS jest podłączony do atmegi to odczyt jest cały czas 0.0'C
natomiast gdy odłączę czujnik to pomiar wskazuje -0,1'C
Nie mam już pomysłu co może być nie tak. Ale wygląda na to, że jakaś komunikacja zachodzi więc coś się dzieje ale nie do końca dobrze. Dodam, że sprawdzałem na dwóch DS'ach nowych ze sklepu i jest taka sama sytuacja.
Biblioteka dla DS znaleziona gdzieś w internecie. Załączam pliki:
main:
aux globals:
ds18b20.c
ds18b20.h
avr_compact.h
aux_globals
oraz makefile wygenerowany za pomocą Mfile WinAVR
Mam problem z pomiarem temperatury, przeszukałem forum i internet n razy w poszukiwaniu odpowiedzi ale nie natrafiłem na żaden trop. Sądzę, że błąd leży gdzieś w kodzie.
Wynik pomiaru docelowo jest prezentowany na LCD 2x16.
Pomiędzy VCC a DQ mam rezystor 4,7k zgodnie z notą DS'a (nie w trybie pasożytniczym)
Atmega podłączona zgodnie z zasadami jej zasilania odpowiednia filtracja itd dodatkowo zasilanie z zasilacza stabilizowanego więc wszystko powinno grać.
Taktowanie wewnętrzne 8MHz
Problem w tym, że gdy DS jest podłączony do atmegi to odczyt jest cały czas 0.0'C
natomiast gdy odłączę czujnik to pomiar wskazuje -0,1'C
Nie mam już pomysłu co może być nie tak. Ale wygląda na to, że jakaś komunikacja zachodzi więc coś się dzieje ale nie do końca dobrze. Dodam, że sprawdzałem na dwóch DS'ach nowych ze sklepu i jest taka sama sytuacja.
Biblioteka dla DS znaleziona gdzieś w internecie. Załączam pliki:
main:
Code: c
aux globals:
Code: c
ds18b20.c
Code: c
ds18b20.h
Code: c
avr_compact.h
Code: c
aux_globals
Code: c
oraz makefile wygenerowany za pomocą Mfile WinAVR
Code: c