Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- eStatusCode_t MFRC522_Anticoll( uint8_t *pSnr )
- {
- eStatusCode_t status;
- uint8_t i,snr_check=0;
- uint32_t unLen;
- RFIDClearBits( eREG_Status2 , 0x08 );
- _WriteRegister( eREG_BitFraming , 0x00 );
- RFIDClearBits( eREG_Coll , 0x80 );
- pSnr[0] = eCARD_COMMAND_ANTICOLL;
- pSnr[1] = 0x20;
- status = RFIDCommunication( eMFRC_COMMAND_TRANSCEIVE , pSnr , 2 , pSnr , &unLen );
- //ulDebug = unLen;
- if ( status == eSTATUS_OK || ( unLen != 0x90 ) ) // unLen wird bei mir mit 40 Dez. zurück gegeben!
- {
- for ( i = 0 ; i < 4 ; i++ )
- {
- snr_check ^= pSnr[i];
- }
- if (snr_check != pSnr[i] ) // Der vergleich hier schlägt auch fehl..
- {
- status = eSTATUS_ERROR;
- }
- }
- RFIDSetBits( eREG_Coll , 0x80 );
- return status;
- }
- {
- /*!<-- Karte suchen und ggf. den Kartentyp zurück liefern <--*/
- eStatus = MFRC522_Request( eCARD_COMMAND_REQALL , CardID );
- if ( eStatus == eSTATUS_OK )
- {
- uart_puts( "Karte gefunden!\r\n" );
- }
- else
- {
- continue;
- }
- uint8_t unLen = MFRC522_Anticoll(&CardID[2]);
- uart_puts("unLen = " );
- UART_DEC( (uint8_t*)&ulDebug , 4 ); // in "ulDebug" steht einfach nur der Wert von den zurückgegeben Bits aus der "RFIDCommunication" Funktion
- if ( eStatus == eSTATUS_OK )
- {
- uart_puts( "The Number is.. ");
- }
- _delay_ms(1000);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement