Shop OBEX P1 Docs P2 Docs Learn Events
RFID code help — Parallax Forums

RFID code help

GiuseppeGiuseppe Posts: 51
edited 2009-01-14 23:30 in BASIC Stamp
Maybe this is asking too much but could someone walk me through what is exactly happening with this example source code. I am still a newbie to understanding what some of this stuff means.


' =========================================================================
'
'   File....... RFID_basic.BS2
'   Purpose.... RFID Tag Reader
'   Author..... (c) Parallax, Inc. -- All Rights Reserved
'   E-mail..... support@parallax.com
'   Started....
'   Updated.... 02 Mar 2005
'
'   {$STAMP BS2}
'   {$PBASIC 2.5}
'
' =========================================================================


' -----[noparse][[/noparse] Program Description ]---------------------------------------------
'
' Reads tags from a Parallax RFID reader and displays ID to debug screen


' -----[noparse][[/noparse] Revision History ]------------------------------------------------


' -----[noparse][[/noparse] I/O Definitions ]-------------------------------------------------

Enable          PIN     0                       ' low = reader on
RX              PIN     1                       ' serial from reader



' -----[noparse][[/noparse] Constants ]-------------------------------------------------------

#SELECT $STAMP
  #CASE BS2, BS2E, BS2PE
    T2400       CON     396
  #CASE BS2SX, BS2P
    T2400       CON     1021
  #CASE BS2PX
    T2400       CON     1646
#ENDSELECT

Baud            CON     T2400

LastTag         CON     3


#DEFINE __No_SPRAM = ($STAMP < BS2P)            ' does module have SPRAM?


' -----[noparse][[/noparse] Variables ]-------------------------------------------------------

#IF __No_SPRAM #THEN
  buf           VAR     Byte(10)                ' RFID bytes buffer
#ELSE
  Char       VAR     Byte                    ' character to test
#ENDIF

tagNum          VAR     Nib                     ' from EEPROM table
idx             VAR     Byte                    ' tag byte index



' -----[noparse][[/noparse] Initialization ]--------------------------------------------------

Reset:
  HIGH Enable                                   ' turn of RFID reader



' -----[noparse][[/noparse] Program Code ]----------------------------------------------------

Main:
  LOW Enable                                    ' activate the reader
  #IF __No_SPRAM #THEN
    SERIN RX, T2400, [noparse][[/noparse]WAIT($0A), STR buf\10]    ' wait for hdr + ID
  #ELSE
    SERIN RX, T2400, [noparse][[/noparse]WAIT($0A), SPSTR 10]
  #ENDIF
  HIGH Enable                                   ' deactivate reader

Display_Tag:
  DEBUG "Tag Identification number is: ", CR
    FOR idx = 0 TO 9                            ' scan bytes in tag

      #IF __No_SPRAM #THEN
        DEBUG buf(idx)
      #ELSE
        GET idx, Char                        ' read char from SPRAM
        DEBUG Char
      #ENDIF
    NEXT
  DEBUG CR
  PAUSE 500
  GOTO main                              ' repeats code





Or maybe there is documentation somewhere I can further study?

Comments

  • SRLMSRLM Posts: 5,045
    edited 2009-01-14 23:30
    All the lines beginning with # are compiler options. For now, you can ignore them.

    All the lines beginning with ' are comments: these are for the programmers eyes, and they have absolutely no effect on code operation.

    The section under I/O definitions allows you to name a pin so that other code is more easily read.

    The section under constants allows you to name constants. Wherever you see LastTag in the program, you can replace it with 3 and there is no difference in execution.

    The section under variables declares named variables.

    The initialization turns off the RFID reader.

    The Main: is a program label. Everything below that (before the next label) is a logical block of code that is "main" in some way. In this case, it receives information from the RFID reader and stores it in a ram location.

    The Display_tag: program label is the logical block of code that displays the tag, in this case on your computer screen.

    For more information about PBASIC, see the books "What's a microcontroller" and "PBASIC syntax and Reference Manual" available from the parallax main website for free download.
Sign In or Register to comment.