How to compare strings/array? RFID Project


Closed Thread
Results 1 to 40 of 101

Hybrid View

  1. #1
    Join Date
    Aug 2007
    Posts
    7


    Did you find this post helpful? Yes | No

    Default

    No luck. I replaced the T2400 with 396 and it made no difference. I don't believe that the serial input is the problem because I can debug with a serial LCD and I can get it to print the actual RFID tag numbers on the LCD. The problem seems to lie under Check_List:. Specifically the line...
    READ (tagNum - 1 * 10 + idx), char ' get tag data from table

    I've never saved anything to EEPROM before. Maybe its not reading it correctly? Or saving it?

  2. #2
    Join Date
    Jun 2007
    Location
    Germany
    Posts
    44


    Did you find this post helpful? Yes | No

    Default

    Can you post your complete code?
    I have to understand what are youīre trying to do.

    regards Rob

  3. #3
    Join Date
    Dec 2005
    Posts
    1,073


    Did you find this post helpful? Yes | No

    Default

    You might try using WRITE to store the data. That might isolate the problem to your DATA or READ statements.

  4. #4
    Join Date
    Jun 2007
    Location
    Germany
    Posts
    44


    Did you find this post helpful? Yes | No

    Default

    Maybe this one will help you.
    I donīt try before working with SERIN2 but give it a try. You can change this part with storing data to eeprom too. Itīs only to see how to realize that, if iīm not wrong.
    To store data on eeprom use
    DATA @$00,$D7,$7C,$4B,$02,$2D,$C9,$80,$3A,$C4,$72

    Code:
    Loop      VAR BYTE
    ReadTag   VAR BYTE[2]
    ConvTag   VAR WORD
    Tag       VAR WORD[5]
    
    Tag(1) = $D77C
    Tag(2) = $4B02
    Tag(3) = $2DC9
    Tag(4) = $803A
    Tag(5) = $C472
    
    ' -----[ Program Code ]----------------------------------------------------
    Main:
    
    LOW PORTB.3 ' activate the reader
    SERIN2 PORTB.2, T2400, [WAIT($0A,"100050"), STR ReadTag\2]
    HIGH PORTB.3 ' deactivate reader
    
    Check_List:
    ConvTag = ReadTag(0)*$100 + ReadTag(1)
    FOR Loop = 1 to 5
        IF ConvTag = Tag(Loop) THEN Tag_found
    NEXT Loop 
    GOTO Bad_Char
    
    Bad_Char: ' try next tag
    '....
    '....
    GOTO main
    
    Tag_Found:

  5. #5
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Are you sure you're programming your tag numbers in EEPROM at burn time? You should be
    able to read back the .hex after programming to check.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  6. #6
    Join Date
    Jun 2007
    Location
    Germany
    Posts
    44


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Bruce View Post
    Are you sure you're programming your tag numbers in EEPROM at burn time? You should be
    able to read back the .hex after programming to check.
    I donīt wrote the code before for storing on eeprom.

    But maybe this could work
    Code:
    DATA @$00, $D7, $7C, $4B, $02, $2D, $C9, $80, $3A, $C4, $72
    
    Loop    VAR BYTE
    ReadTag VAR BYTE[2]
    Tag     VAR WORD[5]
    TmpTag  VAR BYTE[10]
    ConvTag VAR WORD
    
    ' -----[ Program Code ]----------------------------------------------------
    
    FOR Loop= 0 TO 9           ' Reading Data from EEprom Adr: $00 -$09
        READ Loop,TmpTag(Loop)
    NEXT Loop
    
    Main:
    
    LOW PORTB.3 ' activate the reader
    SERIN2 PORTB.2, T2400, [WAIT($0A,"100050"), STR ReadTag\2]
    HIGH PORTB.3 ' deactivate reader
    
    Check_List:
    
    FOR Loop = 0 TO 8 STEP 2    ' Calculate Word from HighByte + LowByte
        Tag(Loop/2) = TmpTag(Loop)*$100+TmpTag(Loop+1)
    NEXT Loop
    
    ConvTag = ReadTag(0)*$100+ReadTag(1) ' Conversion of ReadTag to WORD
    
    FOR Loop = 0 TO 4           ' Compare if ReadTag compares to Database in Eeprom
        IF ConvTag = Tag(Loop) THEN Tag_found
    NEXT Loop
    GOTO Bad_Char
    
    Bad_Char: ' try next tag
    '....
    '....
    GOTO main
    
    Tag_Found:
    Error corrected... Sorry
    Last edited by Robson; - 25th August 2007 at 18:16.

  7. #7
    Join Date
    Aug 2007
    Posts
    7


    Did you find this post helpful? Yes | No

    Default

    I have simplified my program to isolate the issue. I believe it lies with the READ command. This is my simplified code.

    Code:
    CMCON = 7   
    DEFINE OSC 20
    
    char            VAR     Byte                    ' character from table
    
    ' - LCD Stuff -
    i con 254
    clrlcd con 1
    cgram con 64
    ddram con 128
    n96n con $4054
    pause 1000
    serout2 portb.7,n96n,[i,clrlcd]
    pause 1
    
    Tag1 DATA @$00,$10,$2A,$54,$FF,$7C
    
    Main:
    
    READ $02, char        ' get tag data from table
    
    'Debug to LCD
    serout2 portb.7,n96n,[i,clrlcd]
    pause 500
    serout2 portb.7,n96n,[i,ddram+0]
    serout2 portb.7,n96n,[HEX char]
    serout2 portb.7,n96n,[i,ddram+6]
    serout2 portb.7,n96n,[DEC char]
    pause 1000
    
    end
    At this point I am just trying to read a byte form the EEPROM and display it on the LCD just to prove it is being read. I see the EEPROM data in the EEPROM data window on my EPICWin programming software. So I guess it is writing the EEPROM data at burn time. However all I can debug on the LCD so far is just 0. This leads me to think that the problem is with the READ command. With the above example I would think that the LCD would display 2A or at least something other than just 0's.

Similar Threads

  1. Parallax RFID Reader code example
    By dan-tron in forum Code Examples
    Replies: 4
    Last Post: - 19th April 2013, 22:16
  2. A Temperature & Humidity Data Recorder Project
    By Oldspring in forum Off Topic
    Replies: 0
    Last Post: - 9th July 2008, 18:47
  3. Replies: 3
    Last Post: - 12th March 2008, 05:33
  4. Free Web based RFID Online Courses
    By Thirumoorthy in forum General
    Replies: 0
    Last Post: - 19th November 2007, 13:38
  5. Free web based RFID online Course
    By Lesikar in forum GPS
    Replies: 0
    Last Post: - 19th October 2007, 22:28

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts