Zmierzam zbudować zamek na iButtonie DS1990A.
Poniżej zamieszczam projekt programu w Basom nad którym właśnie pracuję.
Program ten ma za zadanie zapisywać przy pierwszym uruchomieniu oraz przy zwarciu zworki w pamięci eeprom kontrolera 10 numerów ID pastylek iButton np DS1990A.
I do tego moment wszystko ok program działa.
Problem natomiast mam z odczytaniem i porównaniem danych numer ID w pamięci z numerem ID odczytanym z iButton-a.
Proszę szanownych kolegów o pomoc (podprogram Autoryzacja)
Poniżej zamieszczam projekt programu w Basom nad którym właśnie pracuję.
Program ten ma za zadanie zapisywać przy pierwszym uruchomieniu oraz przy zwarciu zworki w pamięci eeprom kontrolera 10 numerów ID pastylek iButton np DS1990A.
I do tego moment wszystko ok program działa.
Problem natomiast mam z odczytaniem i porównaniem danych numer ID w pamięci z numerem ID odczytanym z iButton-a.
Proszę szanownych kolegów o pomoc (podprogram Autoryzacja)
$regfile = "2313DEF.dat"
$crystal = 4000000
$baud = 19200
Config 1wire = Portb.0
Dim Eepromadres As Byte
Dim Tempvalue As Byte
Dim R As Byte
Dim I As Byte
Dim Register_number(8) As Byte
Dim Button_number As Byte
Dim Temp As Byte
Dim Blokada As Bit
Declare Sub Rejestracja
Declare Sub Pauza
Declare Sub Autoryzacja
Readeeprom Tempvalue , 127
If Tempvalue <> 1 Then
Call Rejestracja
End If
Set Portd.5
If Pind.5 = 0 Then
Call Rejestracja
End If
'Glowna petla programu
Do
If Err = 0 Then
Call Autoryzacja
End If
Call Pauza
If Blokada = 1 Then
Print "PASTYLKA OK!"
Blokada = 0
End If
Loop
'PODPROGRAMY
Sub Rejestracja
Eepromadres = 1
Do
Register_number(1) = 1wsearchfirst()
If Err = 0 Then
For Temp = 1 To 8
Writeeeprom Register_number(temp) , Eepromadres
Incr Eepromadres
Print "pastylka" ; Eepromadres
Next Temp
End If
If Eepromadres > 80 Then
For R = 1 To 4
Next R
For R = 1 To 4
Next R
Exit Do
End If
Call Pauza
Loop
Tempvalue = 1
Writeeeprom Tempvalue , 127
End Sub
Sub Autoryzacja
Blokada = 0
1wreset
1wwrite &H33
For I = 1 To 8
Register_number(i) = 1wread()
Next I
Eepromadres = 1
For R = 1 To 10
For I = 1 To 8
Readeeprom Button_number , Eepromadres
If Button_number = Register_number(i) Then
Blokada = 1
Else
Blokada = 0
End If
Incr Eepromadres
Next I
Next R
End Sub
Sub Pauza
Waitms 250
End SubModerowany przez Light-I:Kod ujęto w tagi "code".