void main(void) { int i; char status; char str[100]; init(); // initialize PIC init_soft_uart(); init_SPI(); GIE = 0; // disable all PIC's interrupts LATB2 = 0; // LED0 off for (i=0;i<100;i++) __delay_ms(10); uart_write_s("init ok !\n\r"); init_RC522(); while (1) { status = MFRC522_Request(PICC_REQIDL, str); // check if card is present if (status == MI_OK) { uart_write_s("ok card ! \n\r"); if (MFRC522_ReadCardSerial(str) == MI_OK) // get UID { uart_write_s("UID = "); // and display it uart_write_hex_c(*(str+0)); uart_write_hex_c(*(str+1)); uart_write_hex_c(*(str+2)); uart_write_hex_c(*(str+3)); uart_write_s("\n\r"); } LATB2 = 1; // blink LED0 for (i=0;i<10;i++) __delay_ms(10); // . LATB2 = 0; // . for (i=0;i<10;i++) __delay_ms(10); // . LATB2 = 1; // . for (i=0;i<10;i++) __delay_ms(10); // . LATB2 = 0; // . for (i=0;i<10;i++) __delay_ms(10); // . LATB2 = 1; // . for (i=0;i<10;i++) __delay_ms(10); // . LATB2 = 0; // . for (i=0;i<10;i++) __delay_ms(10); // . } //for (i=0;i<50;i++) __delay_ms(10); LATB2 = 1; // Blink LED0, visual normal operation works, before watchdog dev __delay_ms(10); LATB2 = 0; __delay_ms(10); } return; }
void main() { char UID[6]; unsigned char TagType; char size; // char i; UART_init(); //Inicializa Soft SPI SPI_init(0); //inicializa o modulo RFID MFRC522_Init(); TRIS_LED1 = 0; TRIS_BUTTON = 1; TRIS_OUTPUT1 = 0; for(int i=0;i<10;i++) { LED1 = 1; __delay_ms(250); LED1 = 0; __delay_ms(250); } while(1) { if(BUTTON == 0) { num++; } if(num==8) { clear_list_cards(); printf("Lista apagada\n\r"); num=0; LED1 = 1; for(char i=0;i<10;i++)__delay_ms(100); LED1 = 0; } //Letura if( MFRC522_isCard( &TagType ) ) { //Exibe o tipo do cartão na serial printf("Tipo de Tag: %u\n\r",TagType); //Faz a leitura do numero de serie if( MFRC522_ReadCardSerial( UID ) ) { //Só mostra que um cartão foi lido LED1 = 1; printf("Codigo: "); for(int i=0; i < 5; i++) { printf("%X ",UID[i]); } printf("\n\r"); //Gravação if(BUTTON == 0) { record_card(UID); num = 0; printf("Cartão cadastrado\n\r"); LED1=1; __delay_ms(250); LED1=0; } //Comparação if(compare_card(UID)) { OUTPUT1=1; printf("Cartão reconhecido!\n\r"); for(char i=0;i<8;i++)__delay_ms(250);//2 segundos OUTPUT1=0; } else { printf("Cadastre o cartão\n\r"); } // size = MFRC522_SelectTag( UID ); } //Estado de hibernação //MFRC522_Halt(); } LED1 = 0; __delay_ms(250); } }