Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.42 KB | None | 0 0
  1. eStatusCode_t MFRC522_Anticoll( uint8_t *pSnr )
  2. {
  3.     eStatusCode_t status;
  4.     uint8_t i,snr_check=0;
  5.     uint32_t unLen;
  6.    
  7.     RFIDClearBits( eREG_Status2 , 0x08 );
  8.     _WriteRegister( eREG_BitFraming , 0x00 );
  9.     RFIDClearBits( eREG_Coll , 0x80 );
  10.    
  11.     pSnr[0] = eCARD_COMMAND_ANTICOLL;
  12.     pSnr[1] = 0x20;
  13.  
  14.     status = RFIDCommunication( eMFRC_COMMAND_TRANSCEIVE , pSnr , 2 , pSnr , &unLen );
  15.  
  16.     //ulDebug = unLen;
  17.  
  18.     if ( status == eSTATUS_OK  || ( unLen != 0x90 ) ) // unLen wird bei mir mit 40 Dez. zurück gegeben!
  19.     {      
  20.         for ( i = 0 ; i < 4 ; i++ )
  21.         {
  22.             snr_check ^= pSnr[i];
  23.         }
  24.        
  25.         if (snr_check != pSnr[i] ) // Der vergleich hier schlägt auch fehl..
  26.         {  
  27.             status = eSTATUS_ERROR;    
  28.         }
  29.     }
  30.    
  31.     RFIDSetBits( eREG_Coll , 0x80 );
  32.    
  33.     return status;
  34. }
  35.  
  36.     {  
  37.         /*!<-- Karte suchen und ggf. den Kartentyp zurück liefern <--*/
  38.         eStatus = MFRC522_Request( eCARD_COMMAND_REQALL , CardID );
  39.        
  40.         if ( eStatus == eSTATUS_OK )
  41.         {
  42.             uart_puts( "Karte gefunden!\r\n" );
  43.         }
  44.         else
  45.         {
  46.             continue;
  47.         }
  48.        
  49.        
  50.         uint8_t unLen = MFRC522_Anticoll(&CardID[2]);
  51.         uart_puts("unLen = " );
  52.         UART_DEC( (uint8_t*)&ulDebug , 4 ); // in "ulDebug" steht einfach nur der Wert von den zurückgegeben Bits aus der "RFIDCommunication" Funktion
  53.          
  54.         if ( eStatus == eSTATUS_OK )
  55.         {
  56.             uart_puts( "The Number is.. ");
  57.         }
  58.  
  59.        
  60.         _delay_ms(1000);
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement