Pracuje nad mikroprocesorową aplikacją odczytująca karty systemu RFID Unique.
Poniżej kod i filmik przedstawiający efekty mojej pracy. Do budowy wykorzystałem moduł czytnika RFID za 35zł z allegro, procesor atmega8 pracujący z kwarcem 8MHz.
Mój problem polega na tym, że jak dodamy po Reset Portc.5 a przed Loop polecenie Wait 1 czy np. Waitms 1000 program odczytuje błędne dane jednak zawsze dla każdej z kart takie same. Czy to może mieć z wiązek z użytym przerywaniem? Chodzi o to aby odczytywał jeden raz ID karty i ciągłym przyłożeniu, a nie jak jest teraz że co 100ms bo tak moduł przesyła. Podsuncie pomysł. Z góry dziękuję za pomoc.
Poniżej kod i filmik przedstawiający efekty mojej pracy. Do budowy wykorzystałem moduł czytnika RFID za 35zł z allegro, procesor atmega8 pracujący z kwarcem 8MHz.
Mój problem polega na tym, że jak dodamy po Reset Portc.5 a przed Loop polecenie Wait 1 czy np. Waitms 1000 program odczytuje błędne dane jednak zawsze dla każdej z kart takie same. Czy to może mieć z wiązek z użytym przerywaniem? Chodzi o to aby odczytywał jeden raz ID karty i ciągłym przyłożeniu, a nie jak jest teraz że co 100ms bo tak moduł przesyła. Podsuncie pomysł. Z góry dziękuję za pomoc.
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Enable Interrupts
Config Portc.5 = Output
Set Portc.5
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.3 , Db6 = Portc.2 , Db7 = Portc.1 , E = Portb.0 , Rs = Portb.1
Cursor Off Noblink
Cls
Dim Bufor(7) As Byte
Dim I As Byte
Dim Crc As Byte
Dim Status As String * 4
Lcd "APLIKACJA RFID 1"
Lowerline
Lcd "SEBASTIAN IZYCKI"
Do
For I = 0 To 7
Bufor(i) = 0
Next I
Crc = 0
Status = ""
Set Portc.5
For I = 1 To 7
Bufor(i) = Waitkey()
Next I
Crc = Crc8(bufor(2) , 5)
If Crc = Bufor(7) Then
Status = "OK"
Else
Status = "FAIL"
End If
Print Bufor(1) ; "." ; Bufor(2) ; "." ; Bufor(3) ; "." ; Bufor(4) ; "." ; Bufor(5) ; "." ; Bufor(6) ; "." ; Bufor(7) ; " CRC:" ; Crc ; " " ; Status
Reset Portc.5
Loop
End