Hi I take notice off that.
There are more strange things:
After the:
SEROUT2 XBEE_TX,84, ["Nieuwe kaart",13,10]
The uC starts at INIT again and does not go back to the main routine.
Code:
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 17-8-2011 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Include "modedefs.bas"
Define OSC 20
STATUSLED VAR PORTC.4 ' Rode LED
BUZZER VAR PORTC.7 ' Buzzer
ReedContact VAr PORTC.0 ' Reed contact voor starten dot
Power_On VAR PORTC.1 ' Overname contact power
Power_XBEE VAR PORTB.0
Power_RFID VAR PORTB.3
XBEE_RX VAR PORTB.2 ' Serial data vanaf XBEE
XBEE_TX VAR PORTB.1 ' Serial data naar XBEE
RFID_RX VAR PORTB.7 ' Seriele data vanaf de RFID lezer
RFID_TX VAR PORTB.5 ' Seriele data naar de RFID lezer
Card_Temp VAR BYTE[4] ' Temp serie nummer kaart
i VAr BYTE ' Globale teller
received_date VAR BYTE[16]
read_try var byte ' Pogin tot lezen
x var BYTE[20]
y VAR BYTE
CRC VAR BYTE ' CRC over RFID data
CRC_TOT VAR BYTE ' CRC over totale data
'===============================================================================
' Init
'===============================================================================
Init:
high Power_On
high Power_XBEE
for x = 0 to 30
serout2 XBEE_TX,84,["X2 = ",#x,13,10] '9600 inverted
pause 500
next x
Goto Main
'*******************************************************************************
' Main:
'*******************************************************************************
Main:
high Power_RFID
High STATUSLED
Serout2 RFID_TX,16416,[$AA,$BB,$02,$20,$22] ' Read Card Command
SERIN2 RFID_RX,16416,100,Check_data,[received_date[0]] ' Receive data
FOR i = 1 to 8
SERIN2 RFID_RX,16416,10,Check_Data,[received_date[i]]
NEXT i
Goto Main
'*******************************************************************************
' Check_Data:
' 1. Controle op gelezen data
' 2. Controle of kaart anders is dan vorige keer
' 3. Indien nieuwe kaart schrijf deze in Temp Card Data
'*******************************************************************************
Check_Data:
CRC = received_date[2] ^ received_date[3] ^ received_date[4] ^ received_date[5] ^ received_date[6] ^ received_date[7]
If (received_date[0] = $AA) AND (received_date[1] = $BB) AND (received_date[2] = $06) AND (received_date[8] = CRC) Then
serout2 XBEE_TX,84,["Geldige kaart gelezen CRC := ", HEX2 CRC,13,10]
' Controleer of de kaart anders is dan de vorige kaart
If (received_date[4] <> Card_Temp[4]) OR (received_date[5] <> Card_Temp[5]) OR (received_date[6] <> Card_Temp[6]) OR (received_date[7] <> Card_Temp[7]) Then
SEROUT2 XBEE_TX,84, ["Nieuwe kaart",13,10]
For i = 4 to 7
Card_Temp[i] = received_date[I]
NEXT I
RETURN
ELSE
SEROUT2 XBEE_TX,84, ["Oude kaart",13,10]
RETURN
ENDIF
ELSE
serout2 XBEE_TX,84,["Ongeldige / geen kaart gelezen",13,10]
ENDIF
Goto Main
Bookmarks