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); }
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(); } } }