Witam, mam uC 90S2313 i napisalem sobie prosty program w Bascom ktory porownuje odczytany nr id z tym w pamieci mam 8 pastyle i na paru z nich podczas odczytywania zawiesza mi sie uC. Nie wiem co jest. Mial ktos kiedys taka sytuacje? czy to znaczy ze pastylki sa uszkodzone (sa to dokladnie DS1991L)? Ma ktos moze przykladowy program w Bascomie? Pozdrawiam
Zrodlo mojego programu:
Dim Nrid(8) As Byte Dim Nrid_1(8) As Byte Dim Nrid_2(8) As Byte Dim Nrid_3(8) As Byte Dim K As Bit ' jest porownienie ok czy nie Dim I As Byte ' petla od 1 do
8 przy tablicy '' Wprowadzam do tablicy nr id pastylki Nrid_1(8) = &H00 Nrid_1(7) = &H00 Nrid_1(6) = &H00 Nrid_1(5) = &H00 Nrid_1(4) = &H00 Nrid_1(3) = &H00 Nrid_1(2) = &H00 Nrid_1(1) = &H00 '' takich tablic jest pare (w przykladzie 3) (liczby sa przykladowe) Cls Lcd Spc(3) ; "ID Pastylki:" Do Do 1wreset 'reset magistrali 1wwrite &H33 'polecenie czytania ROM Nrid(1) = 1wread(8) 'wpisanie w tablice numeru id pastylki Waitms 100 Loop Until Err = 0 Locate 2 , 3 For I = 8 To 1 Step -1 Lcd Hex(nrid(i)) 'wypisuje odczytany nr ID Next For I = 1 To 8 Step 1 If Nrid(i) = Nrid_1(i) Then K = 0 Else K = 1 End If If K = 1 Then Exit For End If Next If K = 0 Then Goto Dobra End If For I = 1 To 8 Step 1 If Nrid(i) = Nrid_2(i) Then K = 0 Else K = 1 End If If K = 1 Then Exit For End If Next If K = 0 Then Goto Dobra End If For I = 1 To 8 Step 1 If Nrid(i) = Nrid_3(i) Then K = 0 Else K = 1 End If If K = 1 Then Exit For End If Next If K = 0 Then Goto Dobra End If If K = 1 Then Goto Zla End If Waitms 500 Loop Zla: Locate 1 , 32 Lcd "_Zla_" Return Dobra: Locate 1 , 32 Lcd "Dobra" Return