Hi all, I wonder if someone could help me, I have the following code, and when I swipe the same card twice, I don't receive anything on JeeLink.
void setup()
{
Serial.begin(57600);
Serial.print("Leitor RFID;
DDIR&=~(DATA0+DATA1);
rf12config();
rf12initialize(1,RF12868MHZ,212);
buzzer.mode(OUTPUT);
}
void loop() {
unsigned char recievecount=0;
unsigned char cardnum[4]={0,0,0,0};
unsigned char teste[4] = {0,0,0,0};
for(;;) {
unsigned char data0=0,data1=0;
if(DIN&DATA0) //DATA0 incoming signal
{ data0=1; }
if(DIN&DATA1) //DATA1 incoming signal
{ data1=1; }
if(data0!=data1) // card detected
{
recievecount++;
if(recievecount==1) //drop even bit
{
}
else if(recievecount<10)// card data group 1
{
if(!data1)
{
cardnum0);
}
}
else if(recievecount<18)// card data group 2
{
if(!data1)
{
cardnum1); }
}
if(!data1) // card data group 3
{
cardnum2);
}
delayMicroseconds(80); //Data impulse width delay 80us
}
else // no card incoming or finish reading card
{
unsigned char i=0;
if(recievecount>= 25) //output card number {
recievecount = 0; //reset flag
for(i=0;i<4;i++)
{ Serial.print(cardnumi;
cardnum[i]=0; //reset cardnumber array
teste[i]=cardnum[i];
}
}
}
`
rf12easySend(&teste,sizeof teste);
Serial.println();// output debug value
for (long i = 0; i < 1024 ; i++ )
{
// 1 / 2048Hz = 488uS, or 244uS high and 244uS low to create 50% duty cycle
buzzer.digiWrite(1);
delayMicroseconds(244);
buzzer.digiWrite(0);
delayMicroseconds(220);
}
}
for(int r=0;r<4;r++){
teste[r]=' ';
}
rf12easyPoll();
}
Example:
Pass card #1 and it returns the id in JeeLink (JL has RF12demo)
Pass card #2 and get it again
Pass card #2 again, and nothing... no packets sent :|
I think i'm messing up with easyPool()
enlight me please :)
