Пример #1
0
void main(void)
{
	unsigned char i=0;
	unsigned char status;
	unsigned char str[MAX_LEN];
	unsigned char RC_size;
	unsigned char blockAddr;
	unsigned char mynum[20];
	unsigned char serNum[7];

	uint8_t RCV;
	int resulta=0;
	int fd;
	int a=0;



	fd=Init_SPI("/dev/spidev0.0");
	setup_io();

	SET_INPUT(25);
	SET_OUTPUT(25);

	ApiInit(fd);
	MFRC522_Init();

	a=Read_MFRC522(VersionReg);
	printf("MFRC Version Read %02X \r\n",a);


	//	for(a=0;a<10;a++)
	//	{
	//		RCV=Read_MFRC522(VersionReg);
	//		//RCV=SPI_transfer(fd,a);
	//		printf("RCV %02X \r\n",RCV);
	//		SET_BIT(25);
	//        sleep(1);
	//        CLR_BIT(25);
	//        sleep(1);
	//	}
	while(1)
	{
		status = MFRC522_Request(PICC_REQIDL, str);
		if(resulta==status){

		}else{
			resulta=status;
		}


		if (status == MI_OK)
		{
			mifare_tag_type(str);
			//usleep(1000);
		}

		status = MFRC522_Anticoll(str);
		memcpy(serNum, str,5);
		if (status == MI_OK)
		{
			printf("UID :");
			for(i=0;i<5;i++)
			{
				printf("[");
				printf("%02X",serNum[i]);
				printf("]");
			}
			printf("\n");
			//usleep(1000);
		}

		RC_size=MFRC522_SelectTag(serNum);
		if(RC_size !=0)
		{

			printf("Select_OK Size %02d \n",RC_size);
			puts("");
			puts("");

		}

	}

	close(fd);

}
Пример #2
0
int main( void )
{
    WdtInit();

    InterruptControllerInit();

    EventLogInit();

    GpioInit();

    // Configure !RSN/NMI pin for NMI mode early
    ConfigureRstNmi();

    ConfigureFll();

    V1( EventLogAdd( EVENTLOG_TIMER_INIT ) );
    TimerInit();

    WdtStartTimer();

    V1( EventLogAdd( EVENTLOG_SPI_INIT ) );
    SpiInit();

#if !defined( PLATFORM_RIMEVALBOARD )
    HostCtrlPmicRegisterReset( RESET_LCD_IO );

#if defined( PROCESSOR_PMU430 )
    //resetting the fuel gauge LDO
    PmicClear( PMIC_VRTC, 1<<7 );
    HwDelay(25000000); //25 ms delay
    PmicSet( PMIC_VRTC, 1<<7 );
#endif

#endif

    ApiInit();

#if defined( DEVID_UPDATER_SUPPORT )
    CodeUpdateStateInit( );
#endif

    V1( EventLogAdd( EVENTLOG_ADC_HW_INIT ) );
    AdcInitHw();

    V1( EventLogAdd( EVENTLOG_MSGQUE_INIT ) );
    CallQueueInit();

    V1( EventLogAdd( EVENTLOG_PMIC_INTCTRL_INIT ) );
    PmicIntCtrlInit();

    // configure charger interrupt handler
    PmicRegisterIntHandler( INT_CHARGER_IRQ, ChargerHandler );
    PmicInterruptEnable( INT_CHARGER_IRQ );

    // enable battery insertion/removal interrupts
	PmicWrite( PMIC_CHG_INT, 0x00 );
    PmicClear( PMIC_CHG_INT_MASK, CHGINT_MASK_BAT );
    PmicClear( PMIC_MIRQ, INT_MASK_CHARGER );


    I2cInitInternalBus();

    // Need to enable GIE (PoR default is OFF)
    __enable_interrupt();

    RegisterTimerExpiry( RTC_EXTERNAL_XTAL_TIMER, SwitchToXtal, 0 );
    // switch to external xtal after 2 seconds
    SetTimer( RTC_EXTERNAL_XTAL_TIMER, 0x10000 );

#if defined( PLATFORM_RIMEVALBOARD )
    I2cInit();
#else
    HostCtrlInit();
#endif

    for (;;) {
        WdtHit();

        if( !ExecuteCall() ) {
            // if there was nothing to call, enter sleep mode
            SCSleep();
        }
    }
}