亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? m500auc.lst

?? MRF500源碼,讀寫射頻卡!快點下!!絕對精彩
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 232          //  FUNCTION: FlushFIFO
 233          //        IN: -
 234          //       OUT: -
 235          //    RETURN: 
 236          //   COMMENT: All remaining date in the FIFO of the reader module is 
 237          //            erased by this function. Before wrinting new data or
 238          //            starting a new command, all remaining data from former 
 239          //            commands should be deleted. Please note, that in 
 240          //            normal operation, never data should be left, that means
C51 COMPILER V8.05a   M500AUC                                                              03/18/2008 10:38:22 PAGE 5   

 241          //            that a call to this function should not be necessary.
 242          //
 243          void FlushFIFO(void);
 244          
 245          // _____________________________________________________________________________
 246          //
 247          //  FUNCTION: M500PiccAuthState
 248          //        IN: auth_mode
 249          //            snr
 250          //            sector
 251          //       OUT: -
 252          //    RETURN: 
 253          //   COMMENT: 
 254          //
 255          char M500PiccAuthState(unsigned char auth_mode,// PICC_AUTHENT1A, PICC_AUTHENT1B
 256                                 unsigned char *snr,    // 4 byte serial number
 257                                 unsigned char sector); // 0 <= sector <= 15  
 258                                                      // sector address for authentication
 259          
 260          //////////////////////////////////////////////////////////////////////
 261          //           E X C H A N G E   B Y T E   S T R E A M
 262          ///////////////////////////////////////////////////////////////////////
 263          char ExchangeByteStream(unsigned char Cmd,
 264                                  unsigned char *send_data,
 265                                  unsigned char send_bytelen,
 266                                  unsigned char *rec_data,  
 267                                  unsigned char *rec_bytelen);
 268          
 269          ///////////////////////////////////////////////////////////////////////////////
 270          //                  Interrupt Handler RC500
 271          ///////////////////////////////////////////////////////////////////////////////
 272          void RC500ISR (void) interrupt 0 using 1    //Ext0 interrupt
 273          {
 274   1         static unsigned char idata irqBits;
 275   1         static unsigned char idata irqMask;            
 276   1         static unsigned char idata nbytes;
 277   1         static unsigned char idata cnt;
 278   1      
 279   1         IE0 = 0;     // Clear interrupt request flag
 280   1      
 281   1         if (MpIsrInfo && MpIsrOut && MpIsrIn)  // transfer pointers have to be set
 282   1                                                // correctly
 283   1         {
 284   2            while( ReadRawIO(RegPrimaryStatus) & 0x08) // loop while IRQ pending
 285   2                                                      // Attention: IRQ bit is 
 286   2                                                      // inverted when used with
 287   2                                                      // low activ IRQ
 288   2            {
 289   3               irqMask = ReadRawIO(RegInterruptEn); // read enabled interrupts
 290   3               // read pending interrupts
 291   3               irqBits = ReadRawIO(RegInterruptRq) & irqMask;
 292   3               MpIsrInfo->irqSource |= irqBits; // save pending interrupts
 293   3               //************ LoAlertIRQ ******************
 294   3               if (irqBits & 0x01)    // LoAlert
 295   3               {  
 296   4                  nbytes = MFIFOLength - ReadRawIO(RegFIFOLength);
 297   4                  // less bytes to send, than space in FIFO
 298   4                  if ((MpIsrInfo->nBytesToSend - MpIsrInfo->nBytesSent) <= nbytes)
 299   4                  {
 300   5                     nbytes = MpIsrInfo->nBytesToSend - MpIsrInfo->nBytesSent;
 301   5                     WriteRawIO(RegInterruptEn,0x01); // disable LoAlert IRQ
 302   5                  }
C51 COMPILER V8.05a   M500AUC                                                              03/18/2008 10:38:22 PAGE 6   

 303   4                  // write remaining data to the FIFO
 304   4                  for ( cnt = 0;cnt < nbytes;cnt++)
 305   4                  {
 306   5                     WriteRawIO(RegFIFOData,MpIsrOut[MpIsrInfo->nBytesSent]);
 307   5                     MpIsrInfo->nBytesSent++;
 308   5                  }
 309   4                  WriteRawIO(RegInterruptRq,0x01);  // reset IRQ bit
 310   4               }
 311   3            
 312   3               //************* TxIRQ Handling **************
 313   3               if (irqBits & 0x10)       // TxIRQ
 314   3               {
 315   4                  WriteRawIO(RegInterruptRq,0x10);    // reset IRQ bit 
 316   4                  WriteRawIO(RegInterruptEn,0x82);    // enable HiAlert Irq for
 317   4                                                 // response
 318   4                  if (MpIsrInfo->cmd == PICC_ANTICOLL1)       // if cmd is anticollision
 319   4                  {                                           // switch off parity generation
 320   5                     WriteRawIO(RegChannelRedundancy,0x02);   // RXCRC and TXCRC disable, parity disable
 321   5                  }   
 322   4               }
 323   3      
 324   3               //************* HiAlertIRQ or RxIRQ Handling ******************
 325   3               if (irqBits & 0x0E) // HiAlert, Idle or RxIRQ
 326   3               {
 327   4                  // read some bytes ( length of FIFO queue)              
 328   4                  // into the receive buffer
 329   4                  nbytes = ReadRawIO(RegFIFOLength);
 330   4                  // read date from the FIFO and store them in the receive buffer
 331   4                  for ( cnt = 0; cnt < nbytes; cnt++)               
 332   4                  {
 333   5                     MpIsrIn[MpIsrInfo->nBytesReceived] = ReadRawIO(RegFIFOData);
 334   5                     MpIsrInfo->nBytesReceived++;
 335   5                  }
 336   4                  WriteRawIO(RegInterruptRq,0x0A & irqBits);  
 337   4                                             // reset IRQ bit - idle irq will
 338   4                                             // be deleted in a seperate section
 339   4               }   
 340   3         
 341   3               //************** IdleIRQ Handling ***********
 342   3               if (irqBits & 0x04)     // Idle IRQ
 343   3               {
 344   4                  WriteRawIO(RegInterruptEn,0x20); // disable Timer IRQ
 345   4                  WriteRawIO(RegInterruptRq,0x20); // disable Timer IRQ request
 346   4                  irqBits &= ~0x20;   // clear Timer IRQ in local var
 347   4                  MpIsrInfo->irqSource &= ~0x20; // clear Timer IRQ in info var
 348   4                                              // when idle received, then cancel
 349   4                                              // timeout
 350   4                  WriteRawIO(RegInterruptRq,0x04);  // reset IRQ bit 
 351   4                  // status should still be MI_OK
 352   4                  // no error - only used for wake up
 353   4               }
 354   3             
 355   3               //************* TimerIRQ Handling ***********
 356   3               if (irqBits & 0x20)       // timer IRQ
 357   3               {
 358   4                  WriteRawIO(RegInterruptRq,0x20); // reset IRQ bit 
 359   4                  MpIsrInfo->status = MI_NOTAGERR; // timeout error
 360   4                                                   // otherwise ignore the interrupt
 361   4               }
 362   3               
 363   3            }
 364   2         }
C51 COMPILER V8.05a   M500AUC                                                              03/18/2008 10:38:22 PAGE 7   

 365   1      }
 366          
 367          ///////////////////////////////////////////////////////////////////////
 368          //         S e t   T i m e o u t   L E N G T H
 369          ///////////////////////////////////////////////////////////////////////
 370          void M500PcdSetTmo(unsigned char tmoLength)
 371          {
 372   1         switch(tmoLength)
 373   1         {  // timer clock frequency 13,56 MHz
 374   2            case 1:                       // short timeout (1,0 ms)
 375   2               WriteIO(RegTimerClock,0x07); // TAutoRestart=0,TPrescale=128
 376   2               WriteIO(RegTimerReload,0x6a);// TReloadVal = 'h6a =106(dec) 
 377   2               break;
 378   2            case 2:                       // medium timeout (1,5 ms)
 379   2               WriteIO(RegTimerClock,0x07); // TAutoRestart=0,TPrescale=128
 380   2               WriteIO(RegTimerReload,0xa0);// TReloadVal = 'ha0 =160(dec) 
 381   2               break;
 382   2            case 3:                       // medium timeout (6 ms)
 383   2               WriteIO(RegTimerClock,0x09); // TAutoRestart=0,TPrescale=4*128
 384   2               WriteIO(RegTimerReload,0xa0);// TReloadVal = 'ha0 =160(dec) 
 385   2               break;
 386   2            case 4:                       // long timeout (9.6 ms)
 387   2               WriteIO(RegTimerClock,0x09); // TAutoRestart=0,TPrescale=4*128
 388   2               WriteIO(RegTimerReload,0xff);// TReloadVal = 'hff =255(dec) 
 389   2               break;
 390   2            case 5:                       // long timeout (38.5 ms)
 391   2               WriteIO(RegTimerClock,0x0b); // TAutoRestart=0,TPrescale=16*128
 392   2               WriteIO(RegTimerReload,0xff);// TReloadVal = 'hff =255(dec) 
 393   2               break;
 394   2            case 6:                       // long timeout (154 ms)
 395   2               WriteIO(RegTimerClock,0x0d); // TAutoRestart=0,TPrescale=64*128
 396   2               WriteIO(RegTimerReload,0xff);// TReloadVal = 'hff =255(dec) 
 397   2               break;
 398   2            case 7:                       // long timeout (616.2 ms)
 399   2               WriteIO(RegTimerClock,0x0f); // TAutoRestart=0,TPrescale=256*128
 400   2               WriteIO(RegTimerReload,0xff);// TReloadVal = 'hff =255(dec) 
 401   2               break;
 402   2            default:                       // 
 403   2               WriteIO(RegTimerClock,0x07); // TAutoRestart=0,TPrescale=128
 404   2               WriteIO(RegTimerReload,tmoLength);// TReloadVal = 'h6a =tmoLength(dec) 
 405   2               break;
 406   2         }     
 407   1      }
 408          
 409          //////////////////////////////////////////////////////////////////////
 410          //       W R I T E   A   P C D   C O M M A N D 
 411          ///////////////////////////////////////////////////////////////////////
 412          char  M500PcdCmd(unsigned char cmd,
 413                         volatile unsigned char* send, 
 414                         volatile unsigned char* rcv,
 415                         volatile MfCmdInfo *info)
 416          {     
 417   1         char          idata status    = MI_OK;
 418   1         char          idata tmpStatus ;
 419   1         unsigned char idata lastBits;
 420   1      
 421   1         unsigned char idata irqEn     = 0x00;
 422   1         unsigned char idata waitFor   = 0x00;
 423   1         unsigned char idata timerCtl  = 0x00;
 424   1      
 425   1         WriteIO(RegInterruptEn,0x7F); // disable all interrupts
 426   1         WriteIO(RegInterruptRq,0x7F); // reset interrupt requests
C51 COMPILER V8.05a   M500AUC                                                              03/18/2008 10:38:22 PAGE 8   

 427   1         WriteIO(RegCommand,PCD_IDLE); // terminate probably running command
 428   1      
 429   1         FlushFIFO();            // flush FIFO buffer
 430   1      
 431   1         // save info structures to module pointers
 432   1         MpIsrInfo = info;  
 433   1         MpIsrOut  = send;
 434   1         MpIsrIn   = rcv;
 435   1      
 436   1         info->irqSource = 0x0; // reset interrupt flags
 437   1         // depending on the command code, appropriate interrupts are enabled (irqEn)
 438   1         // and the commit interrupt is choosen (waitFor).
 439   1         switch(cmd)
 440   1         {
 441   2            case PCD_IDLE:                   // nothing else required
 442   2               irqEn = 0x00;
 443   2               waitFor = 0x00;
 444   2               break;
 445   2            case PCD_WRITEE2:                // LoAlert and TxIRq
 446   2               irqEn = 0x11;
 447   2               waitFor = 0x10;
 448   2               break;
 449   2            case PCD_READE2:                 // HiAlert, LoAlert and IdleIRq
 450   2               irqEn = 0x07;
 451   2               waitFor = 0x04;
 452   2               break;
 453   2            case PCD_LOADCONFIG:             // IdleIRq
 454   2            case PCD_LOADKEYE2:              // IdleIRq
 455   2            case PCD_AUTHENT1:               // IdleIRq
 456   2               irqEn = 0x05;
 457   2               waitFor = 0x04;
 458   2               break;
 459   2            case PCD_CALCCRC:                // LoAlert and TxIRq
 460   2               irqEn = 0x11;
 461   2               waitFor = 0x10;
 462   2               break;
 463   2            case PCD_AUTHENT2:               // IdleIRq
 464   2               irqEn = 0x04;
 465   2               waitFor = 0x04;
 466   2               break;
 467   2            case PCD_RECEIVE:                // HiAlert and IdleIRq
 468   2               info->nBitsReceived = -(ReadIO(RegBitFraming) >> 4);
 469   2               irqEn = 0x06;
 470   2               waitFor = 0x04;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩黄色一级片| 欧美精品在线一区二区三区| 欧美色综合久久| www欧美成人18+| 日韩中文欧美在线| 色综合中文字幕| 国产女人水真多18毛片18精品视频 | 青青国产91久久久久久| 从欧美一区二区三区| 日韩欧美视频一区| 午夜亚洲福利老司机| 成人av网站大全| 26uuu久久天堂性欧美| 午夜a成v人精品| 日本久久电影网| 国产精品成人一区二区艾草 | 亚洲男人的天堂在线aⅴ视频| 久久国产视频网| 7799精品视频| 亚洲国产精品一区二区久久| 成人白浆超碰人人人人| 国产午夜亚洲精品不卡| 天堂久久一区二区三区| 欧美影院一区二区三区| 18成人在线观看| 高清在线观看日韩| 亚洲国产成人午夜在线一区| 精品一区二区在线观看| 欧美videossexotv100| 日韩在线一区二区| 91精品视频网| 日韩成人一区二区三区在线观看| 欧美亚洲自拍偷拍| 亚洲国产成人av| 欧美少妇性性性| 亚洲综合激情另类小说区| 在线免费观看不卡av| 亚洲美女一区二区三区| 欧美无砖砖区免费| 亚洲国产欧美在线| 欧美精品日韩综合在线| 日韩精品欧美精品| 精品国产乱码久久久久久久| 激情综合色丁香一区二区| 精品美女一区二区| 丁香一区二区三区| **性色生活片久久毛片| 91看片淫黄大片一级| 曰韩精品一区二区| 欧美日韩精品免费| 久久99精品国产91久久来源| 久久久久久久免费视频了| 成人av在线网站| 亚洲欧美一区二区三区久本道91| 91丨九色丨黑人外教| 洋洋av久久久久久久一区| 91福利区一区二区三区| 蜜臀91精品一区二区三区| 久久影音资源网| a在线播放不卡| 亚洲va欧美va人人爽| 日韩美女视频在线| 成人精品免费视频| 亚洲一区二区三区在线看| 日韩欧美一二三区| a美女胸又www黄视频久久| 亚洲无线码一区二区三区| 精品国免费一区二区三区| 成人蜜臀av电影| 丝袜美腿亚洲色图| 国产欧美日韩综合精品一区二区| 在线一区二区观看| av一二三不卡影片| 亚洲一区二区三区自拍| 亚洲精品一区二区三区蜜桃下载 | 亚洲一区二区三区四区中文字幕| 日韩美女主播在线视频一区二区三区| 成人福利电影精品一区二区在线观看| 亚洲一区二区在线播放相泽 | 成人激情小说乱人伦| 亚洲国产裸拍裸体视频在线观看乱了| 精品av久久707| 欧亚一区二区三区| 懂色av一区二区三区蜜臀| 亚洲夂夂婷婷色拍ww47| 国产精品丝袜久久久久久app| 欧美日韩在线观看一区二区 | 久久久久国产精品麻豆ai换脸| 91电影在线观看| 国产成人三级在线观看| 日韩精品欧美精品| 一区二区三区在线视频免费| 久久久精品日韩欧美| 欧美久久婷婷综合色| 91色porny在线视频| 国产成人精品综合在线观看 | 亚洲欧美日韩系列| 欧美极品美女视频| 91精品国产综合久久婷婷香蕉 | 亚洲精品日韩一| 久久婷婷色综合| 精品三级在线观看| 91精品国产一区二区三区 | 国产在线观看免费一区| 奇米精品一区二区三区在线观看| 亚洲免费大片在线观看| 亚洲欧洲99久久| 欧美韩国日本不卡| 中文无字幕一区二区三区| 精品国产一区二区三区不卡 | 色婷婷综合久久久久中文一区二区 | 日韩视频永久免费| 在线国产亚洲欧美| 久久99久久99| 精品在线播放免费| 国产一区久久久| 国产精品一区二区久久精品爱涩 | 亚洲午夜精品网| 亚洲国产成人91porn| 日韩影院在线观看| 日韩电影免费一区| 狠狠色综合播放一区二区| 国产成人免费视频网站| www.久久久久久久久| 91视频观看视频| 欧美日韩在线三区| 日韩视频一区二区三区在线播放| 日韩三级视频在线看| 精品久久久久久久久久久久久久久久久 | 91九色最新地址| 在线精品观看国产| 6080午夜不卡| 久久精品无码一区二区三区| 国产人伦精品一区二区| 国产精品免费丝袜| 亚洲综合丝袜美腿| 久久99久久久久| 大尺度一区二区| 欧美亚洲丝袜传媒另类| 91精品久久久久久蜜臀| 日韩视频在线永久播放| 欧美高清在线精品一区| 一区二区在线观看视频| 青青国产91久久久久久| 成人永久看片免费视频天堂| 欧美性色aⅴ视频一区日韩精品| 91精品国产91久久综合桃花| 国产亚洲欧美激情| 一区二区三区国产精品| 美女网站视频久久| www.视频一区| 717成人午夜免费福利电影| 欧美国产精品专区| 日韩极品在线观看| 成人成人成人在线视频| 欧美一级久久久| 中文字幕日韩av资源站| 日韩高清一区二区| 99久久精品免费看国产免费软件| 欧美一区永久视频免费观看| 国产精品私人影院| 免费人成网站在线观看欧美高清| av激情亚洲男人天堂| 欧美一区在线视频| 一区二区三区四区国产精品| 国产资源在线一区| 欧美女孩性生活视频| 中文字幕高清不卡| 日本aⅴ免费视频一区二区三区 | 中文字幕一区二区日韩精品绯色| 日韩**一区毛片| 在线观看成人免费视频| 国产欧美一区二区三区鸳鸯浴| 五月天激情小说综合| 91在线观看高清| 久久久国产一区二区三区四区小说| 亚洲.国产.中文慕字在线| 99视频在线精品| 国产日产欧美精品一区二区三区| 日韩和欧美一区二区| 不卡影院免费观看| 中文字幕欧美激情一区| 韩国av一区二区三区四区| 91精品国产综合久久福利| 亚洲国产欧美一区二区三区丁香婷| 99re热视频这里只精品| 国产视频一区在线观看| 激情欧美一区二区| 日韩欧美成人午夜| 人人超碰91尤物精品国产| 欧美视频在线播放| 亚洲在线免费播放| 91久久免费观看| 亚洲综合免费观看高清完整版| 99国产一区二区三精品乱码| 国产精品丝袜91| 成人免费看的视频| 欧美韩国一区二区| 99国产精品视频免费观看| 国产精品久久久久久久久搜平片|