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

Jak obsłużyć dwa termometry DS1820 w Bascom AVR?

Soohy_tm 07 Cze 2006 18:27 1167 3
REKLAMA
  • #1 2707482
    Soohy_tm
    Poziom 15  
    Posty: 206
    Pomógł: 4
    Ocena: 5
    Co dopisać do tego kodu aby uC obsługiwał dwa termometry DS1820?
    Cytat:

    1wreset
    1wwrite &HCC
    1wwrite &H44
    Waitms 750
    1wreset
    1wwrite &HCC
    1wwrite &HBE
    Bd(1) = 1wread(9)
    1wreset
    Tmp = Bd(1) And 1
    If Tmp = 1 Then Decr Bd(1)
    T = Makeint(bd(1) , Bd(2))
    T = T * 50 : T = T - 25 : T1 = Bd(8) - Bd(7) : T1 = T1 * 100
    T1 = T1 / Bd(8) : T = T + T1 : T = T / 10
    Lcd Format(str(T) , "00.0")


    Dziękuje i pozdrawiam - Soohy_tm
  • REKLAMA
  • #2 2707693
    filip_gd
    Poziom 12  
    Posty: 103
    Pomógł: 1
    Ocena: 2
    Niedawno był o tym post
    poszukaj :
    2x DS18B20
  • REKLAMA
  • Pomocny post
    #3 2708678
    Espablo
    Poziom 14  
    Posty: 98
    Pomógł: 5
    Ocena: 48
    Ja mam tak (DS18B20) i to chodzi:
    
    1wreset
    1wwrite &H55                                                ' Będę wysyłał adres
    1wwrite Adresy(1) , 8                                       ' Wysyłam adres
    1wwrite &HBE                                                ' Komenda dla czujnika o wysłanym adresie
    Wew(1) = 1wread(9)
    1wreset
    1wwrite &H55
    1wwrite Adresy(9) , 8
    1wwrite &HBE
    Zew(1) = 1wread(9)
    1wreset
    1wwrite &HCC                                                ' Komenda skip ROM, czyli słuchajcie wszyscy
    1wwrite &H44                                                ' Komenda convert T
    Waitms 500
    Cls
    T = Makeint(wew(1) , Wew(2))
    Gosub Temp
    
    Locate 1 , 1
    Lcd "Temp.wew." ; Temp_str ; Chr(0) ; "C  "
    If W = 1 Then
      Locate 2 , 1
      Lcd "----------------"                                    'Err = 1 jeśli brak czujnika zew.
      Elseif Err = 0 Then
       T = Makeint(zew(1) , Zew(2))
       Gosub Temp
       Locate 2 , 1
       Lcd "Temp.zew." ; Temp_str ; Chr(0) ; "C  "
        End If
    
    Temp:
    T = T * 10
    T = T / 16
    Temp_str = Str(t)
    Temp_str = Format(temp_str , "0.0")
    Return
    
  • #4 2709217
    Soohy_tm
    Poziom 15  
    Posty: 206
    Pomógł: 4
    Ocena: 5
    Dokładnie o to mi chodziło! Szukałem na elektrodzie, ale nigdzie nie było tak dobrego przykładu! Dziękuje i pozdrawiam.
    Soohy_tm
REKLAMA