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:
magistrala 1wire podciagnięta przez rezystor.
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.