Need help on serial rfid receive
I am experimenting with id12 rfid reader with PIC18f2550, but I can not get consistent reading. id12 has a leading character ( 02h) , how to read the data after this leading character?
I tried with WAIT modifier, but it did not gave any result
HSERIN [ wait ($02), b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ]
Code:
ASM
__CONFIG _CONFIG1L, _PLLDIV_10_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_1_1L
__CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H
__CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L & _VREGEN_OFF_2L
__CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_512_2H
__CONFIG _CONFIG3H, _PBADEN_OFF_3H & _MCLRE_ON_3H & _CCP2MX_ON_3H
__CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L
ENDASM
define osc 40
DEFINE LCD_DREG PORTB ' LCD data port
DEFINE LCD_DBIT 0 ' LCD data starting bit
DEFINE LCD_RSREG PORTB ' LCD register select port
DEFINE LCD_RSBIT 4 ' LCD register select bit
DEFINE LCD_EREG PORTB ' LCD enable port
DEFINE LCD_EBIT 5 ' LCD enable bit
DEFINE LCD_BITS 4 ' LCD data bus size
DEFINE LCD_LINES 2 ' Number lines on LCD
DEFINE LCD_COMMANDUS 1500 ' Command delay time in us
DEFINE LCD_DATAUS 44 ' Data delay time in us
define HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 9600
DEFINE HSER_SPBRG 25
define HSER_CLROERR
b1 var byte
b2 var byte
b3 var byte
b4 var byte
b5 var byte
b6 var byte
b7 var byte
b8 var byte
b9 var byte
b10 var byte
b11 var byte
b12 var byte
b13 var byte
clear
porta = 0
portb = 0
portc = 0
TRISA = %00000000 ' Set PORTA to all input
TRISB = %00000000 ' Set PORTB to all output
TRISC = %10000000 ' Set PORTC to all input
LCDOUT $FE, 1 'clear lcd
pause 100
main:
HSERIN [ wait ($02), b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ] ' the data sequence is STX(02h), data ( 10 ASCII ),checksum (2 ASCII ),CR, LF, ETX(03h)
LCDOUT $FE,1 , b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13
pause 500
goto main