⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m500auc.lst

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 709   2           // initialize waterlevel to value 4
 710   2           WriteIO(RegFIFOLevel,0x04);   
 711   2           
 712   2           //Timer configuration
 713   2           WriteIO(RegTimerControl,0x02);  // TStopRxEnd=0,TStopRxBeg=0,
 714   2                                           // TStartTxEnd=1,TStartTxBeg=0  
 715   2                                 // timer must be stopped manually
 716   2           M500PcdSetTmo(1);               // short timeout
 717   2      
 718   2           WriteIO(RegIRqPinConfig,0x03); // interrupt active low enable
 719   2      
 720   2           M500PcdRfReset(1);            // Rf - reset and enable output driver   
 721   2      
 722   2           // initialize internal key memory     
 723   2           //for (i = 0; i < 16; i++)
 724   2           //  for (j = 0; j < 12; j++)
 725   2           //      MKeys[i][j] = 0xff;
 726   2         }
 727   1         return status;
 728   1      }
*** WARNING C280 IN LINE 678 OF SOURCE\M500AUC.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 679 OF SOURCE\M500AUC.C: 'j': unreferenced local variable
 729          
 730          ///////////////////////////////////////////////////////////////////////
 731          //          M I F A R E   R E M O T E   A N T E N N A
 732          //  Configuration of slave module
 733          ///////////////////////////////////////////////////////////////////////
C51 COMPILER V7.02a   M500AUC                                                              07/24/2003 11:05:36 PAGE 13  

 734          char M500PcdMfInOutSlaveConfig(void)
 735          {
 736   1         char idata status = MI_OK;
 737   1      
 738   1         FlushFIFO();    // empty FIFO
 739   1         ResetInfo(MInfo);   
 740   1         MSndBuffer[0] = 0x10; // addr low byte
 741   1         MSndBuffer[1] = 0x00; // addr high byte
 742   1      
 743   1         MSndBuffer[2] = 0x00; // Page
 744   1         MSndBuffer[3] = 0x7B; // RegTxControl modsource 11,InvTx2,Tx2RFEn,TX1RFEn
 745   1         MSndBuffer[4] = 0x3F; // RegCwConductance
 746   1         MSndBuffer[5] = 0x3F; // RFU13
 747   1         MSndBuffer[6] = 0x19; // RFU14
 748   1         MSndBuffer[7] = 0x13; // RegModWidth     
 749   1         MSndBuffer[8] = 0x00; // RFU16
 750   1         MSndBuffer[9] = 0x00; // RFU17
 751   1       
 752   1         MSndBuffer[10] = 0x00; // Page
 753   1         MSndBuffer[11] = 0x73; // RegRxControl1 
 754   1         MSndBuffer[12] = 0x08; // RegDecoderControl
 755   1         MSndBuffer[13] = 0x6c; // RegBitPhase     
 756   1         MSndBuffer[14] = 0xFF; // RegRxThreshold  
 757   1         MSndBuffer[15] = 0x00; // RFU1D
 758   1         MSndBuffer[16] = 0x00; // RegRxControl2   
 759   1         MSndBuffer[17] = 0x00; // RegClockQControl
 760   1      
 761   1         MSndBuffer[18] = 0x00; // Page
 762   1         MSndBuffer[19] = 0x06; // RegRxWait
 763   1         MSndBuffer[20] = 0x03; // RegChannelRedundancy
 764   1         MSndBuffer[21] = 0x63; // RegCRCPresetLSB    
 765   1         MSndBuffer[22] = 0x63; // RegCRCPresetMSB    
 766   1         MSndBuffer[23] = 0x0;  // RFU25
 767   1         MSndBuffer[24] = 0x04; // RegMfOutSelect enable mfout = manchester HT
 768   1         MSndBuffer[25] = 0x00; // RFU27
 769   1           
 770   1         // PAGE 5      FIFO, Timer and IRQ-Pin Configuration
 771   1         MSndBuffer[26] = 0x00; // Page
 772   1         MSndBuffer[27] = 0x08; // RegFIFOLevel       
 773   1         MSndBuffer[28] = 0x07; // RegTimerClock      
 774   1         MSndBuffer[29] = 0x06; // RegTimerControl    
 775   1         MSndBuffer[30] = 0x0A; // RegTimerReload     
 776   1         MSndBuffer[31] = 0x02; // RegIRqPinConfig    
 777   1         MSndBuffer[32] = 0x00; // RFU    
 778   1         MSndBuffer[33] = 0x00; // RFU
 779   1         MInfo.nBytesToSend   = 34;
 780   1               
 781   1         status = M500PcdCmd(PCD_WRITEE2,
 782   1                             MSndBuffer,
 783   1                             MRcvBuffer,
 784   1                             &MInfo); // write e2
 785   1         return status;
 786   1      }
 787          
 788          ///////////////////////////////////////////////////////////////////////
 789          //          M I F A R E   R E M O T E   A N T E N N A
 790          //  Configuration of master module
 791          ///////////////////////////////////////////////////////////////////////
 792          char M500PcdMfInOutMasterConfig(void)
 793          {
 794   1         WriteIO(RegRxControl2,0x42);
 795   1         WriteIO(RegTxControl,0x10);
C51 COMPILER V7.02a   M500AUC                                                              07/24/2003 11:05:36 PAGE 14  

 796   1         WriteIO(RegBitPhase,0x11);
 797   1      
 798   1         return MI_OK;
 799   1      }     
 800          
 801          ///////////////////////////////////////////////////////////////////////
 802          //          M A S T E R   K E Y   L O A D 
 803          ///////////////////////////////////////////////////////////////////////
 804          char M500PcdLoadMk(unsigned char  auth_mode,  // KEYA or KEYB
 805                             unsigned char  key_addr,   // 0 <= key_addr <= 15
 806                             unsigned char  *mk)        // 6 bytes uncoded master key
 807          {
 808   1         unsigned char idata offset = (auth_mode == PICC_AUTHENT1A) ? 0 : 6;
 809   1      
 810   1         //memcpy(MKeys[key_addr] + offset,mk,6);// modified by dongyongde
 811   1         return MI_OK;
 812   1      }
*** WARNING C280 IN LINE 805 OF SOURCE\M500AUC.C: 'key_addr': unreferenced local variable
*** WARNING C280 IN LINE 806 OF SOURCE\M500AUC.C: 'mk': unreferenced local variable
 813                            
 814          ///////////////////////////////////////////////////////////////////////
 815          //          E E P R O M   M A S T E R   K E Y   L O A D 
 816          ///////////////////////////////////////////////////////////////////////
 817          char M500PcdLoadKeyE2(unsigned char key_type,
 818                                    unsigned char sector,
 819                                    unsigned char *uncoded_keys)
 820          {
 821   1         char idata status = MI_OK;
 822   1         // eeprom address calculation
 823   1         // 0x80 ... offset
 824   1         // key_sector ... sector
 825   1         // 0x18 ... 2 * 12 = 24 = 0x18
 826   1         unsigned short idata e2addr = 0x80 + sector * 0x18;
 827   1         unsigned char idata *e2addrbuf = (unsigned char*)&e2addr;
 828   1         unsigned char idata keycoded[12];
 829   1      
 830   1         if (key_type == PICC_AUTHENT1B)
 831   1            e2addr += 12; // key B offset   
 832   1         
 833   1         FlushFIFO();    // empty FIFO
 834   1         ResetInfo(MInfo);
 835   1      
 836   1         M500HostCodeKey(uncoded_keys,keycoded);
 837   1         memcpy(MSndBuffer,e2addrbuf,2); // write low and high byte of address
 838   1         MSndBuffer[2] = MSndBuffer[0];    // Move the LSB of the 2-bytes
 839   1         MSndBuffer[0] = MSndBuffer[1];    // address to the first byte
 840   1         MSndBuffer[1] = MSndBuffer[2];
 841   1         memcpy(&MSndBuffer[2],keycoded,12); // write 12 bytes of coded keys
 842   1         MInfo.nBytesToSend   = 14;
 843   1         
 844   1         // write load command
 845   1         status = M500PcdCmd(PCD_WRITEE2,
 846   1                              MSndBuffer,
 847   1                              MRcvBuffer,
 848   1                              &MInfo);         
 849   1         
 850   1         return status;
 851   1      }
 852          
 853          ///////////////////////////////////////////////////////////////////////
 854          //          E E P R O M   R E A D   
 855          ///////////////////////////////////////////////////////////////////////
C51 COMPILER V7.02a   M500AUC                                                              07/24/2003 11:05:36 PAGE 15  

 856          char PcdReadE2(unsigned short startaddr,
 857                         unsigned char length,
 858                         unsigned char* _data)
 859          {
 860   1         char status = MI_OK;
 861   1      
 862   1           // ************* Cmd Sequence ********************************** 
 863   1           ResetInfo(MInfo);   
 864   1           MSndBuffer[0] = startaddr & 0xFF;
 865   1           MSndBuffer[1] = (startaddr >> 8) & 0xFF;
 866   1           MSndBuffer[2] = length;
 867   1           MInfo.nBytesToSend   = 3;
 868   1           status = M500PcdCmd(PCD_READE2,
 869   1                               MSndBuffer,
 870   1                               MRcvBuffer,
 871   1                               &MInfo);
 872   1          if (status == MI_OK)
 873   1          {
 874   2             memcpy(_data,MRcvBuffer,length);
 875   2          }
 876   1          else   // Response Processing
 877   1          {
 878   2             _data[0] = 0;
 879   2          }
 880   1          return status ;
 881   1      }
 882          
 883          ///////////////////////////////////////////////////////////////////////
 884          //          E E P R O M   W R I T E 
 885          ///////////////////////////////////////////////////////////////////////
 886          char PcdWriteE2(unsigned short startaddr,
 887                          unsigned char length,
 888                          unsigned char* _data)
 889          {
 890   1         char status = MI_OK;
 891   1      
 892   1           // ************* Cmd Sequence ********************************** 
 893   1         ResetInfo(MInfo);   
 894   1         MSndBuffer[0] = startaddr & 0xFF;
 895   1         MSndBuffer[1] = (startaddr >> 8) & 0xFF;
 896   1         memcpy(MSndBuffer + 2,_data,length);
 897   1      
 898   1         MInfo.nBytesToSend   = length + 2;
 899   1               
 900   1         status = M500PcdCmd(PCD_WRITEE2,
 901   1                             MSndBuffer,
 902   1                             MRcvBuffer,
 903   1                             &MInfo); // write e2
 904   1         return status;
 905   1      }   
 906          
 907          ///////////////////////////////////////////////////////////////////////
 908          //          C O N F I G   M F O U T   S E L E C T 
 909          ///////////////////////////////////////////////////////////////////////
 910          char M500PcdMfOutSelect(unsigned char type)
 911          {
 912   1         WriteIO(RegMfOutSelect,type&0x7);
 913   1         return MI_OK;
 914   1      }
 915          
 916          ///////////////////////////////////////////////////////////////////////
 917          //          W R I T E   R E G I S T E R 
C51 COMPILER V7.02a   M500AUC                                                              07/24/2003 11:05:36 PAGE 16  

 918          ///////////////////////////////////////////////////////////////////////
 919          char M500PcdWriteRegister(unsigned char Reg, unsigned char value)
 920          {
 921   1         WriteIO(Reg,value);
 922   1         return MI_OK;
 923   1      }
 924          
 925          ///////////////////////////////////////////////////////////////////////
 926          //          R E A D   R E G I S T E R 
 927          ///////////////////////////////////////////////////////////////////////
 928          char M500PcdReadRegister(unsigned char Reg)
 929          {
 930   1         char value;
 931   1              
 932   1         value = ReadIO(Reg);
 933   1         return (value);
 934   1      }
 935               
 936          ///////////////////////////////////////////////////////////////////////
 937          //          M I F A R E    R E Q U E S T 
 938          ///////////////////////////////////////////////////////////////////////
 939          
 940          char M500PiccRequest(unsigned char req_code, // request code ALL = 0x52// or IDLE = 0x26 
 941                             unsigned char *atq)     // answer to request
 942          {
 943   1         return M500PiccCommonRequest(req_code,atq);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -