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

BASCOM i 1wire / DS18B20 dziwna rzecz...

sundayman 31 Sty 2012 17:56 1035 0
REKLAMA
  • #1 10475362
    sundayman
    Poziom 26  
    Mam Atmegę 128 (14.745.600Hz).
    I otoż na porcie B.4 mam sobie termometr DS18B20.

    Próbuję się z nim skomunikować i mam dziwny problem.
    Otóż, robię reset 1wire, a potem próbuję zrobić 1wirecount (bo może być więcej niż 1 termometr) ;

    
    ' ZNAJDZ URZĄDZENIA DS ////////////////////////////////////////
    Sub Ds_find
    
    1wreset
    Waitms 100
    Print "ERR=" ; Err
    
    
    Print "search for DS18B20 :";                               '
    Ds_count = 1wirecount()
    Print "search finalized :";
    
    If Ds_count = 0 Then
       'Print "DS devices not found !"
    Else
       'Print "found " ; Ds_count ; " DS sensors"
    Ds_id1(1) = 1wsearchfirst()
    If Ds_count >= 2 Then
    Ds_id2(1) = 1wsearchnext()
    End If
    If Ds_count >= 3 Then
    Ds_id3(1) = 1wsearchnext()
    End If
    If Ds_count >= 4 Then
    Ds_id4(1) = 1wsearchnext()
    End If
    
    End If
    
    End Sub
    


    Ale niestety - na "Ds_count = 1wirecount()" program się zatrzymuje.
    Widzę, że na pinie DQ układu DS18B20 jest jakaś komunikacja - znaczy cały czas coś tam jest wysyłane (statycznie - czyli cały czas to samo).
    Ale program nie przechodzi dalej.

    Ten fragment programu wykorzystałem sobie z innego programu, który mi chodził bez problemu na M162, więc wydaje się, że powinno być dobrze - zresztą, do wywołania 1wirecount w sumie nic się nie dzieje specjalniego.

    Po 1WRESET nie ma błędu (ERR=0).

    Ki czort ?

    EDIT : wylutowałem DS18B20, czyli że na porcie 1Wire nic nie ma - efekt ten sam - program zawiesza się na 1wirecount. Ale - żeby było ciekawiej, ERR nadal nie wykazuje błędu (czyli ERR = 0)

    EDIT2 : sprawa wyjaśniona - brak rezystora podciągającego 4K7 na linii 1wire.
    Pamiętaj elektroniku młody - sprawdzaj najpierw swe przewody :)
    Zamykam.
  • REKLAMA
REKLAMA