Código:
int x=0, dir=0;
char UID[8], UID1[8], j[8];
while(input(b1)==1) //CON ESTO GUARDO EL TAG
{
delay_ms(20);
LCD_PUTC("\f");
LCD_GOTOXY(1,1);
printf (LCD_PUTC, ":colocar TAG:");
if (MFRC522_isCard (&TagType))
{
DELAY_MS(20);
if (MFRC522_ReadCardSerial (&UID1))
{
for (i=0 ;i<=8; i++)
{
LCD_GOTOXY(i+21,2);
printf (LCD_PUTC, "%x",UID1[i]);
}
dir++;
WRITE_EEPROM(dir,UID1);
}
if (MFRC522_isCard (&TagType)) //CON ESTE COMPARO
{
LCD_PUTC("\f");
LCD_GOTOXY(1,2);
//printf (LCD_PUTC, "Ttp:%d",TagType); //%x
//Read ID
if (MFRC522_ReadCardSerial (&UID))
{
if(dir!=0)
{
for(y=0;y<=dir;y++) //Compara el TAG con las guardadas en la memoria
{
strcpy(j,READ_EEPROM(y));
if(strcmp(UID,j)==0)
{
//levanta servo
LCD_PUTC("\f");
lcd_gotoxy(5,2);
printf(lcd_putc, "Bienvenido");
delay_ms(2000);
LCD_PUTC("\f");
break;
}
}
}
@DJ T3 No pongo todo el código porque es extenso y no esta terminado, al tag lo corto yo para que sea de 8 bits por eso los meto en vectores de 8, porque después del bit 5 se repiten todos los números. El tema es porque solamente me toma el ultimo tag que guardo y los otros que guarde no