Witam
Temat może i wałkowany kilka krotnie, ale siedze nad tym jeż 3 dni i nie mogę odczytać temp z DS1820 i wyświetlić na LCD 16x2, na AT89S52 wszystko działa mi elegancko czujniki sprawne, napisze drugi program pod Atmege, wykrywa mi czujnik, i wyswietla komunikat jak odepne, ale ciagle mam 0 stopni, może ktoś ma na 100% sprawdzony program, moze jakieś fusebity trzeba przestawic, bo jedyny który ruszałem to oscyalator na zewnętrzny kwarc, bo nie widział nawet czujnika. Kwarc jest 10MHz. Czujnik próbowałem już na różnych portach.
Poniżej przykład jednego z programów:
$regfile = "m8def.dat" 'ATmega8
$crystal = 10000000
Config 1wire = Portb.2
'Config Portb = Output
'Config Portd = Output
Config Lcd = 16 * 2
Dim Odczyt(2) As Byte
Declare Sub Odcz_temp
Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 'znak stopnia
Cursor Off
Do
Call Odcz_temp
Cls
Lcd "temp = " ; Odczyt(1) ; Chr(0) ; "C"
Loop
End 'end program
Sub Odcz_temp
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
1wreset
1wwrite &HCC
1wwrite &HBE
Odczyt(1) = 1wread(2)
1wreset
If Err = 1 Then
Cls
Lcd "brak ukladu"
Waitms 500
End If
Odczyt(1) = Odczyt(1) / 2 'obliczanie temperatury
End Sub
Pozdrawiam
Temat może i wałkowany kilka krotnie, ale siedze nad tym jeż 3 dni i nie mogę odczytać temp z DS1820 i wyświetlić na LCD 16x2, na AT89S52 wszystko działa mi elegancko czujniki sprawne, napisze drugi program pod Atmege, wykrywa mi czujnik, i wyswietla komunikat jak odepne, ale ciagle mam 0 stopni, może ktoś ma na 100% sprawdzony program, moze jakieś fusebity trzeba przestawic, bo jedyny który ruszałem to oscyalator na zewnętrzny kwarc, bo nie widział nawet czujnika. Kwarc jest 10MHz. Czujnik próbowałem już na różnych portach.
Poniżej przykład jednego z programów:
$regfile = "m8def.dat" 'ATmega8
$crystal = 10000000
Config 1wire = Portb.2
'Config Portb = Output
'Config Portd = Output
Config Lcd = 16 * 2
Dim Odczyt(2) As Byte
Declare Sub Odcz_temp
Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 'znak stopnia
Cursor Off
Do
Call Odcz_temp
Cls
Lcd "temp = " ; Odczyt(1) ; Chr(0) ; "C"
Loop
End 'end program
Sub Odcz_temp
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
1wreset
1wwrite &HCC
1wwrite &HBE
Odczyt(1) = 1wread(2)
1wreset
If Err = 1 Then
Cls
Lcd "brak ukladu"
Waitms 500
End If
Odczyt(1) = Odczyt(1) / 2 'obliczanie temperatury
End Sub
Pozdrawiam