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

DS1990 błędny odczyt numeru klucza

GStrzelec 30 Cze 2009 15:15 1481 4
REKLAMA
  • #1 6722071
    GStrzelec
    Poziom 10  
    Witam,

    projektuje urządzenie wykorzystujące pastylki DS1990 i w czasie pisania programu natknąłem się na problem z prawidłowym odczytem numeru klucza po przyłożeniu pastylki do czytnika. Nikiedy na wyswietlaczu otrzymuje calkiem przypadkowe dane. Błąd występuje w przypadku około 5% odczytów.

    Okrojony do minimum fragment programu:

    
    $regfile = "attiny2313.dat"
    
    Config Portb.0 = 1
    Config 1wire = Portd.5
    Config Timer1 = Timer , Prescale = 64
    
    Dim Adres(8) As Byte
    Dim Stan As Byte
    Dim I As Byte
    
    Declare Sub Odczyt
    
    Enable Interrupts
    Enable Timer1
    
    On Timer1 Przerwaniet1
    
    Stan = 0
    Cls
    
    Do
    1wreset
    
    If Err = 0 And Stan = 0 Then
       Disable Timer1
       Portb.0 = 0
       Gosub Odczyt
       Stan = 1
    End If
    Loop
    
    End
    
    
    Przerwaniet1:
       Timer1 = 34286
       Toggle Portb.0
    Return
    
    Sub Odczyt
       1wwrite &H33
       For I = 1 To 8
       Adres(i) = 1wread()
       Next I
    
       Cls
       For I = 1 To 8
          Lcd Hex(adres(i))
       Next I
    
    End Sub
    


    magistrala 1wire podciagnięta przez rezystor.
  • REKLAMA
  • #2 6722100
    dawid512
    Poziom 32  
    Jak dla mnie brakuje deklaracji częstotliwości zegara. Po za tym jaki masz rezystor podciągający?
  • REKLAMA
  • REKLAMA
  • #4 6722160
    dawid512
    Poziom 32  
    Fuse bity poprawnie ustawione?
REKLAMA