Guardar datos no volatiles en PIC16F877A

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
 
Por que será que no usan la potencia expresiva del lenguaje C cuando escriben esa chorrera de código??
 
Dificilmente pueda ayudarte leyendo un fragmento de código completamente desarmado, sin comentarios y que opera sobre un sistema que desconozco completamente lo que hace.

Lo correcto es que te sientes, estudies mucho, aprendas a programar y modelar el software y recien entonces intentes resolver un problema.
 
Ademas de lo que dice el Dr , esta el problema que tampoco sabemos con qué librerias estás usando, ya que ésta puede tener algun "bug", asi como el resto del codigo.
 
Atrás
Arriba