hello
i would like to find the primary expression who's define a single nfc tag to assign function to it and another function to another tag in this programme thanks, here is the code:
//This example reads all MIFARE memory block from 0x00 to 0x63.
//It is tested with a new MIFARE 1K cards. Uses default keys for authenication.
//Contributed by Seeed Technology Inc (www.seeedstudio.com)
#include <PN532.h>
#include <SPI.h>
/*Chip select pin can be connected to D10 or D9 which is hareware optional*/
/*if you the version of NFC Shield from SeeedStudio is v2.0.*/
#define PN532_CS 10
PN532 nfc(PN532_CS);
#define NFC_DEMO_DEBUG 1
void setup(void) {
#ifdef NFC_DEMO_DEBUG
Serial.begin(9600);
Serial.println("Hello!");
#endif
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
#ifdef NFC_DEMO_DEBUG
Serial.print("Didn't find PN53x board");
#endif
while (1); // halt
}
#ifdef NFC_DEMO_DEBUG
// Got ok data, print it out!
Serial.print("Found chip PN5");
Serial.println((versiondata >> 24) & 0xFF, HEX);
Serial.print("Firmware ver. ");
Serial.print((versiondata >> 16) & 0xFF, DEC);
Serial.print('.');
Serial.println((versiondata >> 8) & 0xFF, DEC);
Serial.print("Supports ");
Serial.println(versiondata & 0xFF, HEX);
#endif
// configure board to read RFID tags and cards
nfc.SAMConfig();
}
void loop(void) {
uint32_t id;
// look for MiFare type cards
id = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A);
if (id != 0)
{
#ifdef NFC_DEMO_DEBUG
Serial.print("Read card #");
Serial.println(id);
Serial.println();
#endif
uint8_t keys[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; // default key of a fresh card
for (uint8_t blockn = 0; blockn < 64; blockn++)
{
if (nfc.authenticateBlock(1, id , blockn, KEY_A, keys)) //authenticate block blockn
{
//if authentication successful
uint8_t block[16];
//read memory block blockn
if (nfc.readMemoryBlock(1, blockn, block))
{
#ifdef NFC_DEMO_DEBUG
//if read operation is successful
for (uint8_t i = 0; i < 16; i++)
{
//print memory block
Serial.print(block[i], HEX);
if (block[i] <= 0xF) //Data arrangement / beautify
{
Serial.print(" ");
}
else
{
Serial.print(" ");
}
}
Serial.print("| Block ");
if (blockn <= 9) //Data arrangement / beautify
{
Serial.print(" ");
}
Serial.print(blockn, DEC);
Serial.print(" | ");
if (blockn == 0)
{
Serial.println("Manufacturer Block");
}
else
{
if (((blockn + 1) % 4) == 0)
{
Serial.println("Sector Trailer");
}
else
{
Serial.println("Data Block");
}
}
#endif
}