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

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

?? pcdutils.c

?? 包括讀卡器源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
///////////////////////////////////////////////////////////////////////////////
//    Copyright (c), Philips Semiconductors Gratkorn
//
//                  (C)PHILIPS Electronics N.V.2000
//                     All rights are reserved. 
//  Philips reserves the right to make changes without notice at any time.
// Philips makes no warranty, expressed, implied or statutory, including but
// not limited to any implied warranty of merchantibility or fitness for any
//particular purpose, or that the use will not infringe any third party patent,
// copyright or trademark. Philips must not be liable for any loss or damage
//                          arising from its use.
///////////////////////////////////////////////////////////////////////////////
#define DLL_EXPORT      // library source module definition

#include <string.h>
#include <stdio.h>

#include <RICReg.h>

#include <PcdUtils.h>
#include <MfRc500.h>
#include <RcCommunication.h>
#include <MfErrNo.h>
#include <CPURegs.h>
#include <uCInit.h>

volatile unsigned char RxTxBuffer[MAX_RF_BUF_SIZE];

// communication info stucture
static   volatile MfCmdInfo     *MpIsrInfo = 0; 
// ISR send buffer
static   volatile unsigned char *MpIsrOut = 0; 
// ISR receive buffer
static   volatile unsigned char *MpIsrIn = 0;   

///////////////////////////////////////////////////////////////////////
//         S e t   T i m e o u t   L E N G T H
///////////////////////////////////////////////////////////////////////
void PcdSetTmo(unsigned char tmoLength)
{
   switch(tmoLength)
   {  // timer clock frequency 13,56 MHz
      case 1:                         // short timeout (1,0 ms)
         WriteRC(RegTimerClock,0x07); // TAutoRestart=0,TPrescale=128
         WriteRC(RegTimerReload,0x6a);// TReloadVal = 'h6a =106(dec) 
         break;
      case 2:                       // medium timeout (1,5 ms)
         WriteRC(RegTimerClock,0x07); // TAutoRestart=0,TPrescale=128
         WriteRC(RegTimerReload,0xa0);// TReloadVal = 'ha0 =160(dec) 
         break;
      case 3:                       // long timeout (6 ms)
         WriteRC(RegTimerClock,0x09); // TAutoRestart=0,TPrescale=4*128
         WriteRC(RegTimerReload,0xa0);// TReloadVal = 'ha0 =160(dec) 
         break;
      case 4:                       // long timeout (9.6 ms)
         WriteRC(RegTimerClock,0x09); // TAutoRestart=0,TPrescale=4*128
         WriteRC(RegTimerReload,0xff);// TReloadVal = 'ff =255(dec) 
         break;
      default:                       // short timeout (1,0 ms)
         WriteRC(RegTimerClock,0x07); // TAutoRestart=0,TPrescale=128
         WriteRC(RegTimerReload,tmoLength);// TReloadVal = tmoLength
         break;
   }     
}

//////////////////////////////////////////////////////////////////////
//   S E T   A   B I T   M A S K 
///////////////////////////////////////////////////////////////////////
void SetBitMask(unsigned char reg,unsigned char mask) // 
{
   char   tmp    = 0x0;

   tmp = ReadRC(reg);
   WriteRC(reg,tmp | mask);  // set bit mask
}

//////////////////////////////////////////////////////////////////////
//   C L E A R   A   B I T   M A S K 
///////////////////////////////////////////////////////////////////////
void ClearBitMask(unsigned char reg,unsigned char mask) // 
{
   char   tmp    = 0x0;

   tmp = ReadRC(reg);
   WriteRC(reg,tmp & ~mask);  // clear bit mask
}

///////////////////////////////////////////////////////////////////////
//                  F L U S H    F I F O
///////////////////////////////////////////////////////////////////////
void FlushFIFO(void)
{  
   SetBitMask(RegControl,0x01);
}

///////////////////////////////////////////////////////////////////////////////
//                       Interrupt Handler RIC
///////////////////////////////////////////////////////////////////////////////
void SingleResponseIsr(void)
{
   static unsigned char  irqBits;
   static unsigned char  irqMask;            
   static unsigned char  oldPageSelect;
   static unsigned char  nbytes;
   static unsigned char  cnt;

   if (MpIsrInfo && MpIsrOut && MpIsrIn)  // transfer pointers have to be set
                                          // correctly
   {
      oldPageSelect = ReadRawRC(RegPage); // save old page select 
                                          // Attention: ReadRC cannnot be
                                          // used because of the internal
                                          // write sequence to the page 
                                          // reg
      WriteRawRC(RegPage,0x80);                   // select page 0 for ISR
      while( (ReadRawRC(RegPrimaryStatus) & 0x08)) // loop while IRQ pending
      {
         irqMask = ReadRawRC(RegInterruptEn); // read enabled interrupts
         // read pending interrupts
         irqBits = ReadRawRC(RegInterruptRq) & irqMask;
         MpIsrInfo->irqSource |= irqBits; // save pending interrupts
         //************ LoAlertIRQ ******************
         if (irqBits & 0x01)    // LoAlert
         {  
            nbytes = MFIFOLength - ReadRawRC(RegFIFOLength);
            // less bytes to send, than space in FIFO
            if ((MpIsrInfo->nBytesToSend - MpIsrInfo->nBytesSent) <= nbytes)
            {
               nbytes = MpIsrInfo->nBytesToSend - MpIsrInfo->nBytesSent;
             WriteRawRC(RegInterruptEn,0x01); // disable LoAlert IRQ
            }
            // write remaining data to the FIFO
            for ( cnt = 0;cnt < nbytes;cnt++)
            {
               WriteRawRC(RegFIFOData,MpIsrOut[MpIsrInfo->nBytesSent]);
               MpIsrInfo->nBytesSent++;
            }
            WriteRawRC(RegInterruptRq,0x01);  // reset IRQ bit
         }
      
         //************* TxIRQ Handling **************
         if (irqBits & 0x10)       // TxIRQ
         {
            WriteRawRC(RegInterruptRq,0x10);    // reset IRQ bit 
            WriteRawRC(RegInterruptEn,0x82);    // enable HiAlert Irq for
                                                // response
            if (MpIsrInfo->cmd == PICC_ANTICOLL1) // if cmd is anticollision
            {                                     // switch off parity generation
               WriteRC(RegChannelRedundancy,0x02); // RxCRC and TxCRC disable, parity disable               
               WriteRawRC(RegPage,0x00);  // reset page address
            }
         }

         //************* HiAlertIRQ or RxIRQ Handling ******************
         if (irqBits & 0x0E) // HiAlert, Idle or RxIRQ
         {
            // read some bytes ( length of FIFO queue)              
            // into the receive buffer
            nbytes = ReadRawRC(RegFIFOLength);
            // read date from the FIFO and store them in the receive buffer
            for ( cnt = 0; cnt < nbytes; cnt++)               
            {
               MpIsrIn[MpIsrInfo->nBytesReceived] = ReadRawRC(RegFIFOData);
               MpIsrInfo->nBytesReceived++;
            }
            WriteRawRC(RegInterruptRq,0x0A & irqBits);  
                                       // reset IRQ bit - idle irq will
                                       // be deleted in a seperate section
         }   
   
         //************** IdleIRQ Handling ***********
         if (irqBits & 0x04)     // Idle IRQ
         {
            WriteRawRC(RegInterruptEn,0x20); // disable Timer IRQ
            WriteRawRC(RegInterruptRq,0x20); // disable Timer IRQ request
            irqBits &= ~0x20;   // clear Timer IRQ in local var
            MpIsrInfo->irqSource &= ~0x20; // clear Timer IRQ in info var
                                        // when idle received, then cancel
                                        // timeout
            WriteRawRC(RegInterruptRq,0x04);  // reset IRQ bit 
            // status should still be MI_OK
            // no error - only used for wake up
         }
       
         //************* TimerIRQ Handling ***********
         if (irqBits & 0x20)       // timer IRQ
         {
            WriteRawRC(RegInterruptRq,0x20); // reset IRQ bit 
            MpIsrInfo->status = MI_NOTAGERR; // timeout error
                                             // otherwise ignore the interrupt
         }
         
      }
      WriteRawRC(RegPage,oldPageSelect | 0x80);
   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美v国产在线一区二区三区| 中文字幕国产一区| 欧美激情一区在线| 天涯成人国产亚洲精品一区av| 狠狠色伊人亚洲综合成人| 色婷婷综合久久久久中文一区二区| 日韩欧美中文字幕一区| 有码一区二区三区| 成人综合激情网| 日韩午夜激情电影| 亚洲一区二区在线视频| 成人免费不卡视频| 日韩精品一区二区三区视频在线观看 | 亚洲大片在线观看| 成人黄色国产精品网站大全在线免费观看| 91.成人天堂一区| 一区二区三区四区国产精品| www.欧美色图| 国产色综合一区| 国产精品18久久久久久久久久久久| 69堂国产成人免费视频| 亚洲综合久久久久| 在线看一区二区| 亚洲欧美经典视频| 94-欧美-setu| 国产精品久久久久久亚洲伦 | 午夜精品视频一区| 欧美亚洲综合在线| 亚洲精品国久久99热| 成人a免费在线看| 亚洲欧洲精品成人久久奇米网| 国产999精品久久久久久绿帽| 久久久美女毛片| 国产精品一区二区在线播放| 国产日韩精品视频一区| 国产高清精品网站| 国产精品久久久久久妇女6080 | 午夜精品久久久久影视| 欧美日韩免费一区二区三区视频| 亚洲一二三区在线观看| 欧美日韩国产首页在线观看| 首页国产丝袜综合| 日韩精品在线一区二区| 精品在线一区二区| 国产欧美一区二区精品忘忧草| 国产成人免费在线| 日韩毛片一二三区| 欧美日韩一级二级三级| 久久精品国产免费| 国产欧美综合在线观看第十页| caoporm超碰国产精品| 亚洲精品大片www| 日韩一区二区电影| 国产高清精品网站| 亚洲综合在线五月| 欧美变态tickling挠脚心| 国产精品一区二区无线| 亚洲精品国产一区二区精华液 | 精品视频一区三区九区| 日本不卡高清视频| 国产校园另类小说区| 色综合天天综合网天天狠天天| 亚洲高清视频的网址| 精品国产乱码久久久久久老虎 | 另类小说视频一区二区| 国产精品电影一区二区三区| 欧美日韩一区二区三区在线 | 亚洲mv在线观看| 26uuu亚洲综合色欧美| 91片在线免费观看| 琪琪久久久久日韩精品| 中文字幕在线不卡一区| 91精品国产入口| 99精品视频一区二区| 男女男精品视频网| 亚洲美女区一区| 欧美精品一区二区蜜臀亚洲| 91久久免费观看| 国产一区二区三区精品欧美日韩一区二区三区 | 久久综合久久综合亚洲| 欧美视频你懂的| 成人美女在线观看| 久久精品72免费观看| 一区av在线播放| 中文字幕一区三区| 久久久亚洲精品石原莉奈| 欧美猛男男办公室激情| 99热精品国产| 国产激情91久久精品导航| 青青国产91久久久久久| 亚洲免费三区一区二区| 国产欧美精品一区二区色综合| 8v天堂国产在线一区二区| 色哟哟一区二区在线观看| 国产成人综合自拍| 九色综合狠狠综合久久| 午夜欧美一区二区三区在线播放| 日韩一区中文字幕| 国产精品盗摄一区二区三区| 国产网站一区二区| 久久综合九色综合久久久精品综合| 欧美日本国产视频| 欧美日韩国产在线观看| 在线看国产一区| 在线亚洲人成电影网站色www| 不卡视频免费播放| 成人开心网精品视频| 懂色av噜噜一区二区三区av| 国产乱码精品一区二区三区五月婷| 热久久国产精品| 蜜臀av一区二区| 日本va欧美va精品发布| 美女精品一区二区| 久久精品国产**网站演员| 麻豆国产精品官网| 狠狠色丁香婷婷综合久久片| 精品一区二区三区在线观看| 国产综合色视频| 国产精品系列在线播放| 国产91精品精华液一区二区三区 | 欧美激情一区三区| 国产精品福利影院| 一区二区欧美精品| 日日嗨av一区二区三区四区| 日本不卡一区二区| 国产麻豆视频精品| 成人美女视频在线看| 91传媒视频在线播放| 欧美日韩色一区| 精品久久久久久久久久久久包黑料 | ...av二区三区久久精品| 日韩一区中文字幕| 亚瑟在线精品视频| 日本不卡高清视频| 国产91精品免费| 欧洲精品一区二区三区在线观看| 欧美人动与zoxxxx乱| 精品国产乱码久久久久久1区2区| 国产丝袜美腿一区二区三区| 亚洲欧美怡红院| 午夜不卡在线视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | av亚洲产国偷v产偷v自拍| 91久久国产综合久久| 欧美一卡2卡三卡4卡5免费| 久久久久国产精品人| 亚洲综合小说图片| 精品综合久久久久久8888| jizzjizzjizz欧美| 欧美日韩国产精品自在自线| 久久伊99综合婷婷久久伊| 亚洲欧美国产77777| 六月丁香婷婷久久| 在线看国产一区| 国产欧美视频一区二区| 一二三区精品福利视频| 国产麻豆精品久久一二三| 欧洲一区在线电影| 国产亚洲精品中文字幕| 午夜成人在线视频| 99久久伊人网影院| 日韩欧美成人午夜| 亚洲已满18点击进入久久| 国产一区二区按摩在线观看| 欧美三电影在线| 亚洲视频一区在线观看| 激情综合五月婷婷| 欧美欧美欧美欧美首页| 亚洲免费观看视频| 国产麻豆日韩欧美久久| 欧美一区二区三区思思人| 亚洲男人的天堂在线aⅴ视频 | 精品国产乱码久久久久久牛牛| 亚洲精品午夜久久久| 国产成a人亚洲| 精品国产电影一区二区 | 一区二区三区资源| 成人综合在线网站| 久久精品亚洲精品国产欧美| 蜜臀久久99精品久久久画质超高清| 色伊人久久综合中文字幕| 国产精品视频一二三区| 加勒比av一区二区| 日韩欧美国产成人一区二区| 日韩中文字幕亚洲一区二区va在线| 色哟哟国产精品免费观看| 亚洲欧洲精品一区二区精品久久久| 国产99久久久久| 国产日本欧洲亚洲| 国产乱人伦偷精品视频免下载 | 国产盗摄精品一区二区三区在线| 欧美一区二区视频在线观看| 日韩激情中文字幕| 69久久99精品久久久久婷婷| 婷婷一区二区三区| 91超碰这里只有精品国产| 首页国产欧美久久| 欧美一级精品大片| 久久国产生活片100| 久久嫩草精品久久久久|