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

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

?? pcdutils.c

?? For the development of non-contact smart card products, such as: reading and writing, charging machi
?? 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一区二区三区免费野_久草精品视频
国产99久久久国产精品| 欧美日韩高清在线| 亚洲欧洲日韩综合一区二区| 99久久婷婷国产综合精品 | 国产一区二区三区日韩| 欧美精品18+| 狠狠狠色丁香婷婷综合久久五月| 精品国产精品一区二区夜夜嗨| 精品一区二区三区免费视频| 亚洲国产精品精华液2区45| 欧洲精品中文字幕| 国产在线一区二区| 亚洲免费资源在线播放| 91精品国产手机| 韩国视频一区二区| 自拍偷拍国产精品| 精品国产不卡一区二区三区| 91捆绑美女网站| 处破女av一区二区| 国产麻豆成人精品| 偷拍一区二区三区四区| 欧美国产精品劲爆| 欧美日韩国产高清一区二区三区| 国产乱人伦精品一区二区在线观看| 欧美国产视频在线| 精品国产91洋老外米糕| 日韩一区二区高清| 欧美精品xxxxbbbb| 欧美日韩国产欧美日美国产精品| 蜜臂av日日欢夜夜爽一区| 亚洲综合图片区| 亚洲国产精品高清| 日韩理论电影院| 精品国产a毛片| 欧美韩国日本综合| 国产精品乱码妇女bbbb| 国产精品久久久久影院亚瑟| 亚洲国产精品传媒在线观看| 久久久久久毛片| 国产精品乱人伦一区二区| 欧美国产日韩亚洲一区| 欧美激情在线看| 亚洲日本成人在线观看| 亚洲二区在线视频| 日韩av一区二| 久久99国产精品免费网站| 丰满白嫩尤物一区二区| 色综合久久中文综合久久97| 欧美日韩一区二区三区四区| 欧美日韩不卡在线| 久久久国产精品午夜一区ai换脸| 日韩美女视频一区| 日本va欧美va瓶| 成人99免费视频| 91精品国产综合久久小美女| 久久久精品黄色| 亚洲电影中文字幕在线观看| 国模套图日韩精品一区二区| av在线播放一区二区三区| 欧美日韩一区不卡| 国产精品人成在线观看免费| 日本va欧美va欧美va精品| 91网站最新网址| 国产精品美女一区二区三区| 国产高清精品网站| 亚洲精品一二三| 欧美大胆人体bbbb| 国产精品小仙女| 一区二区成人在线| 在线免费观看一区| 久久se精品一区二区| 久久新电视剧免费观看| 国产精品一区专区| 国产精品视频一二三区| 91视频你懂的| 国产精品一区二区三区99| 国产精品的网站| 欧美日韩不卡一区| 亚洲午夜电影网| 69堂成人精品免费视频| 国产麻豆一精品一av一免费| 久久亚洲二区三区| 91片黄在线观看| 国内精品伊人久久久久av影院| 综合电影一区二区三区| 精品成人佐山爱一区二区| 国产成人午夜精品影院观看视频 | www国产精品av| 91欧美一区二区| 国产一区二区三区香蕉| 国产片一区二区| 日韩精品一区二区三区在线观看 | 精品国产乱码久久久久久浪潮| 老司机免费视频一区二区三区| 国产三级一区二区| 欧美一二三四区在线| 色综合久久久久久久久| 亚洲色图清纯唯美| 中文文精品字幕一区二区| 91豆麻精品91久久久久久| 成人午夜电影久久影院| 不卡电影一区二区三区| 日本不卡123| 午夜天堂影视香蕉久久| 亚洲黄色在线视频| 国产精品白丝在线| 欧美激情在线一区二区| 欧美—级在线免费片| 中文字幕不卡的av| 国产日韩欧美一区二区三区综合 | 懂色av中文一区二区三区| 精品一区二区免费视频| 精品一区二区三区视频| 日本在线不卡一区| 久久黄色级2电影| 国产精品综合久久| 成人激情免费视频| 色妞www精品视频| 一本久道久久综合中文字幕| 99视频一区二区| 成人精品小蝌蚪| 91精品福利视频| 97se亚洲国产综合自在线不卡| 成人av免费在线| 色婷婷av一区二区| 日韩一区二区三区电影在线观看| 欧美三级在线视频| 精品国产一区二区三区久久影院| 欧美色中文字幕| 久久久久久久免费视频了| 亚洲精品国产精品乱码不99| 亚洲手机成人高清视频| 国内精品自线一区二区三区视频| 色综合久久六月婷婷中文字幕| 777午夜精品免费视频| 国产亚洲精品福利| 亚洲青青青在线视频| 久久国产生活片100| 欧美日韩国产成人在线免费| 亚洲国产精品ⅴa在线观看| 亚洲三级小视频| 成人禁用看黄a在线| 欧美一级在线观看| 日韩成人免费看| 6080日韩午夜伦伦午夜伦| 国产精品视频免费| 色悠悠亚洲一区二区| 午夜成人免费视频| 欧美成人三级在线| 99久久精品国产观看| 亚洲福中文字幕伊人影院| 欧美tk—视频vk| 菠萝蜜视频在线观看一区| 天堂久久一区二区三区| 成人一区在线观看| 国产不卡视频一区| 欧美久久久影院| 日韩 欧美一区二区三区| 精品少妇一区二区三区在线视频| 欧美国产精品久久| 久久久高清一区二区三区| 中文字幕亚洲视频| 韩国v欧美v日本v亚洲v| 91同城在线观看| 午夜精品免费在线| 中文字幕一区在线观看| 337p日本欧洲亚洲大胆精品| 91精品国产高清一区二区三区| 91在线观看高清| 色天天综合久久久久综合片| 久草在线在线精品观看| 亚洲国产美女搞黄色| 国产精品素人一区二区| 欧美mv日韩mv国产网站| 色婷婷综合久色| 成人永久免费视频| 免费看欧美女人艹b| 亚洲色图在线看| 久久精品一二三| 欧美一区二区三区公司| 色欧美乱欧美15图片| av在线播放一区二区三区| 国产九色sp调教91| 国产精品一区二区你懂的| 亚洲图片一区二区| 国产精品成人一区二区三区夜夜夜| 欧美高清视频不卡网| 成人午夜伦理影院| 国产又粗又猛又爽又黄91精品| 亚洲国产精品一区二区久久 | 国产精品国产自产拍在线| 国产精品久久久久久久久免费相片| 亚洲精品一区二区三区四区高清 | 天天亚洲美女在线视频| 日本视频免费一区| 国产麻豆精品95视频| 丰满放荡岳乱妇91ww| 大白屁股一区二区视频| av电影在线不卡| 欧美性生活久久|