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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? rc531.c

?? RC531
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include"PXA255.h"
#include"RC531.h"
#include"PICC.h"

//#define READER_INT_ENABLE     


#define TCLFSDSNDMAX   8   ///< max. frame size send
#define TCLFSDRECMAX   8   ///< max. frame size rcv
#define TCLDSMAX       3   ///< max. baudrate divider PICC --> PCD
#define TCLDRMAX       3   ///< max. baudrate divider PCD --> PICC

#define TCLDSDFLT      0   ///< default baudrate divider PICC --> PCD
#define TCLDRDFLT      0   ///< default baudrate divider PCD --> PICC
// data send baudrate divider PICC --> PCD
static U8 MDSI = TCLDSDFLT;    

// data send baudrate divider PCD --> PICC
static U8 MDRI = TCLDRDFLT;   
typedef struct 
         {
            unsigned short  SubCarrierPulses; ///< RegRxControl1
            unsigned short  RxCoding;         ///< RegDecoderControl
            unsigned short  RxThreshold;      ///< RegRxThreshold
            unsigned short  BPSKDemControl;   ///< RegBPSKDemControl
         } t_DSCfg;

typedef struct 
         {
            unsigned short  CoderRate;        ///< RegCoderControl
            unsigned short  ModWidth;         ///< RegModWidth
         } t_DRCfg;

const t_DSCfg  MDSCfg[4] = {{0x73,0x08,0x88,0x00}     	// Manchaster 106 kBaud
                            ,{0x53,0x09,0x50,0x0C}     	// BPSK 212 kBaud
                            ,{0x33,0x09,0x50,0x0C}     	// BPSK 424 kBaud
                            ,{0x13,0x09,0x50,0x0C}};   	// BPSK 848 kBaud
const t_DRCfg  MDRCfg[4] = {{0x19,0x13}          		// Miller 106 kBaud
                            ,{0x11,0x07}          		// Miller 212 kBaud
                            ,{0x09,0x03}          		// Miller 424 kBaud
                            ,{0x01,0x01}};        		// Miller 848 kBaud
                            
typedef struct 
         {
            unsigned char  cmd;           //!< command code 
            char           status;        //!< communication status
            unsigned short nBytesSent;    //!< how many bytes already sent
            unsigned short nBytesToSend;  //!< how many bytes to send
            unsigned short nBytesReceived;//!< how many bytes received
            unsigned long  nBitsReceived; //!< how many bits received
            unsigned char  irqSource;     //!< which interrupts have occured
            unsigned char  collPos;       /*!< at which position occured a
                                          collision*/
            unsigned char  errFlags;      //!< error flags
            unsigned char  saveErrorState;//!< accumulated error flags for
                                          //!< multiple responses
            unsigned char  RxAlignWA;     //!< workaround for RxAlign = 7
            unsigned char  DisableDF;     //!< disable disturbance filter
         } MfCmdInfo;

// Convinience function for initialising the communication structure.
#define ResetInfo(info)    \
            info.cmd            = 0; \
            info.status         = MI_OK;\
            info.irqSource      = 0; \
            info.nBytesSent     = 0; \
            info.nBytesToSend   = 0; \
            info.nBytesReceived = 0; \
            info.nBitsReceived  = 0; \
            info.collPos        = 0; \
            info.errFlags       = 0; \
            info.saveErrorState = 0; \
            info.RxAlignWA      = 0; \
            info.DisableDF      = 0;

// In order to exchange some values between the ISR and the calling function,
// a struct is provided. 
volatile MfCmdInfo     MInfo;   
static   volatile MfCmdInfo     *MpIsrInfo = 0;                            
static   volatile unsigned char *MpIsrOut = 0; 
// ISR receive buffer
static   volatile unsigned char *MpIsrIn = 0;   

                            
volatile U8 MemPool[300];

volatile U8 *MSndBuffer = MemPool; // pointer to the transmit buffer
volatile U8 *MRcvBuffer = MemPool; // pointer to the receive buffer                        
                            
                            
void Write_RF531(U8 addr,U8 dat)
{
	Write_RE(0x00,((addr>>3)|0x80));			//set page
	Write_RE((addr&0x07),dat);
}
U8 Read_RF531(U8 addr)
{
	U8 i;
	Write_RE(0x00,((addr>>3)|0x80));			//set page
	i=Read_RE((addr&0x07));
	return i;
	
}

U8 PCD_Reset(void)
{
	
	RF531_RESET
	Delay_us(10);
	RF531_CLEAR_RESET
   	while (((Read_RF531(RegCommand) & 0x3F) != 0x3F));
	while ((Read_RF531(RegCommand) & 0x3F));
   	Write_RF531(RegPage,0x80);					 // Dummy access in order to determine the bus 
   	if (Read_RF531(RegCommand) != 0x00)
		return 0;
	return 1;
}

void SetBitMask(U8 reg,U8 mask)
{
   U8  tmp    = 0x0;
   tmp =Read_RF531(reg);
   Write_RF531(reg,tmp | mask);  				// set bit mask
}

//////////////////////////////////////////////////////////////////////
//   C L E A R   A   B I T   M A S K 
///////////////////////////////////////////////////////////////////////
void ClearBitMask(U8 reg,U8 mask) 
{
   U8   tmp    = 0x0;
   tmp = Read_RF531(reg);
   Write_RF531(reg,tmp & ~mask);  				// clear bit mask
}

void FlushFIFO(void)
{  
   SetBitMask(RegControl,0x01);
}

void PcdRfReset(U8 ms)
{	
   ClearBitMask(RegTxControl,0x03); 			// Tx2RF-En, Tx1RF-En disablen
   if (ms > 0)
   {
      Delay_us(ms*1000);                      	// Delay for 1 ms 
      SetBitMask(RegTxControl,0x03);    		// Tx2RF-En, Tx1RF-En enable
   }
}

void PcdBasicRegisterConfiguration(void)
{
  												// test clock Q calibration - value in the range of 0x46 expected
  Write_RF531(RegClockQControl,0x0);
  Write_RF531(RegClockQControl,0x40);
  Delay_us(100);  								// wait approximately 100 us - calibration in progress
  ClearBitMask(RegClockQControl,0x40); 			// clear bit ClkQCalib for further calibration  enable auto power down
  Write_RF531(RegRxControl2,0x41);
  Write_RF531(RegIRqPinConfig,0x3); 			// interrupt active low enable
} 

void Mf500PcdWriteAttrib(void)
{    											// adjust baudrate and pauselength of reader
    Write_RF531(RegBPSKDemControl,0x0e);   		// RegBPSKDemControl  
    											// set reader send baudrate
    Write_RF531(RegCoderControl,MDRCfg[MDRI].CoderRate);
    Write_RF531(RegModWidth,MDRCfg[MDRI].ModWidth);   
    											// set reader receive baudrate
    Write_RF531(RegRxControl1,MDSCfg[MDSI].SubCarrierPulses);		//0x73
    Write_RF531(RegDecoderControl,MDSCfg[MDSI].RxCoding);      
    Write_RF531(RegRxThreshold,MDSCfg[MDSI].RxThreshold);
    Write_RF531(RegBPSKDemControl,MDSCfg[MDSI].BPSKDemControl);
}

void Mf500PcdConfig(void)
{
    PCD_Reset();
    PcdBasicRegisterConfiguration();
    Mf500PcdWriteAttrib(); 						// write current modulation parameters
    PcdRfReset(1); 								// Rf - reset and enable output driver    
}

///////////////////////////////////////////////////////////////////////
//          M I F A R E   R E M O T E   A N T E N N A
//  Configuration of master module
///////////////////////////////////////////////////////////////////////
void Mf500ActiveAntennaMasterConfig(void)
{
   	Write_RF531(RegRxControl2,0x42);
   	Write_RF531(RegTxControl,0x10);
   	Write_RF531(RegBitPhase,0x11);
  	Write_RF531(RegMfOutSelect,0x02);
}     

U8 Mf500PcdSetAttrib(U8 DSI, U8 DRI)
{ 
  	if ( ( DSI > TCLDSMAX ) || ( DRI > TCLDRMAX ) ) // Return error, if adjusted baudrate not supported by PCD
  	{
    	return 0 ;
  	}else{
   	 	MDSI = DSI;
    	MDRI = DRI;
    	Mf500PcdWriteAttrib();
  	}
  	return 1;
}

U8 Mf500PcdSetDefaultAttrib(void)
{
   	U8  status;
   	// switch to 106 kBaud (default)
   	// if last reader receive baud rate is different to the default value
   	// or last reader send baud rate is different to the default value
   	if ((MDSI != TCLDSDFLT) || (MDRI != TCLDRDFLT))
   	{
      	status = Mf500PcdSetAttrib(TCLDSDFLT,TCLDRDFLT);
   	}
   	return status;
}

U8 PcdSetTmo(U16 tmoLength)
{
    U8 prescale = 7;
    U16 reload = tmoLength;
    while (reload > 255)
    {
       prescale++;
       reload = reload >> 1; // division by 2
    }
    // if one of the higher bits are set, the prescaler is set
    // to the largest value
    if (prescale > 0x15)				// fcnt = 13560000 / (2^prescale)
    {

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩av亚洲一区二区图片| 欧美日韩在线播放| 国产成人综合网站| 日本乱码高清不卡字幕| 成人a免费在线看| 成人短视频下载| 成人手机在线视频| 国产91清纯白嫩初高中在线观看 | 图片区小说区区亚洲影院| 亚洲成人精品一区二区| 亚洲电影视频在线| 日本中文一区二区三区| 日日夜夜一区二区| 麻豆一区二区三区| 国产九色sp调教91| av一区二区三区在线| 99久久精品99国产精品| 91黄色在线观看| 欧美人动与zoxxxx乱| 欧美mv日韩mv国产网站| 亚洲国产电影在线观看| 中文字幕亚洲在| 午夜不卡在线视频| 精品亚洲成a人| 成人午夜av影视| 欧美亚洲综合一区| 日韩欧美国产成人一区二区| 久久久久国产精品麻豆ai换脸| 国产精品色噜噜| 亚洲午夜久久久久久久久电影网| 日韩精品91亚洲二区在线观看 | 91在线国产观看| 欧美色爱综合网| 精品久久久久久久久久久院品网| 久久亚洲欧美国产精品乐播| 亚洲欧美日韩中文字幕一区二区三区 | 国产精品一卡二卡在线观看| 国产.精品.日韩.另类.中文.在线.播放| 懂色一区二区三区免费观看| 91国偷自产一区二区开放时间 | 亚洲精品乱码久久久久久黑人| 日韩精品欧美精品| 国产成人精品一区二区三区四区 | 日本成人在线一区| 91麻豆精品国产无毒不卡在线观看| 精品免费国产一区二区三区四区| 国产精品成人免费| 日本视频在线一区| 不卡一区二区在线| 在线播放亚洲一区| 亚洲欧洲日产国码二区| 蜜臀av国产精品久久久久| 99久久伊人精品| 欧美成人一区二区三区片免费| 国产精品短视频| 麻豆91免费观看| 在线欧美日韩国产| 国产肉丝袜一区二区| 视频一区二区三区中文字幕| 成人毛片视频在线观看| 91麻豆精品国产91久久久久| 国产精品区一区二区三区| 免费一级欧美片在线观看| 色偷偷成人一区二区三区91| 国产亚洲欧美一区在线观看| 婷婷丁香久久五月婷婷| 91免费版在线看| 久久一日本道色综合| 午夜视频一区二区三区| bt欧美亚洲午夜电影天堂| 日韩欧美不卡在线观看视频| 悠悠色在线精品| 成人午夜激情片| 久久一区二区三区四区| 日韩精品久久久久久| 欧洲国内综合视频| 中文字幕一区二区三| 精品午夜一区二区三区在线观看| 精品1区2区3区| 亚洲男人天堂一区| 成人av资源站| 国产色综合久久| 韩国女主播成人在线| 91精品国产全国免费观看| 亚洲在线中文字幕| 色综合久久久网| 国产精品久久久一本精品| 国产精品一二三区在线| 久久亚洲精精品中文字幕早川悠里| 亚洲老妇xxxxxx| gogo大胆日本视频一区| 国产精品网站在线观看| 国产**成人网毛片九色| 久久精品亚洲一区二区三区浴池| 美女免费视频一区| 91精品国产色综合久久ai换脸| 亚洲第一成人在线| 欧美日韩高清一区二区三区| 亚洲网友自拍偷拍| 精品视频一区二区不卡| 亚洲福利一区二区三区| 欧美体内she精高潮| 亚洲男人天堂av网| 91久久精品一区二区三| 樱花影视一区二区| 欧美日韩亚洲另类| 夜夜嗨av一区二区三区中文字幕 | 欧美一卡二卡在线| 日韩电影免费在线| 欧美一区二区三区四区在线观看 | 99re6这里只有精品视频在线观看| 欧美激情中文字幕一区二区| 成人av资源站| 洋洋成人永久网站入口| 欧美日韩大陆一区二区| 肉肉av福利一精品导航| 日韩精品一区二区三区四区视频| 欧美视频中文字幕| 午夜婷婷国产麻豆精品| 日韩欧美国产一区在线观看| 国产精品综合视频| 亚洲欧洲国产日韩| 欧美色精品天天在线观看视频| 日本不卡一二三| 亚洲精品一区二区在线观看| 国产老肥熟一区二区三区| 国产精品美日韩| 欧美中文字幕一二三区视频| 视频一区中文字幕| 国产香蕉久久精品综合网| 色综合久久99| 蜜臀99久久精品久久久久久软件| 日本一区二区三区四区在线视频| 99精品欧美一区二区三区综合在线| 亚洲一区二区成人在线观看| 欧美成人在线直播| av中文字幕不卡| 日本美女一区二区| 国产精品美日韩| 欧美人牲a欧美精品| 国产精品一卡二卡| 亚洲五月六月丁香激情| 久久久精品国产免大香伊| 日本高清不卡在线观看| 麻豆91免费观看| 亚洲三级在线播放| 日韩欧美三级在线| 97久久精品人人做人人爽50路 | av网站一区二区三区| 亚洲无人区一区| 国产亚洲视频系列| 欧美日韩黄色一区二区| 国产精品影视天天线| 亚洲综合一区二区精品导航| 久久久久九九视频| 欧美日韩国产综合草草| 国产成人亚洲综合a∨婷婷图片| 亚洲成人av一区| 中文字幕一区二区三区四区不卡| 日韩一级完整毛片| 91福利在线播放| 高清国产一区二区三区| 日韩电影在线免费| 一区二区三区在线观看欧美| 久久久精品黄色| 日韩一卡二卡三卡四卡| 91色.com| 国产成人av自拍| 久久精工是国产品牌吗| 亚洲综合另类小说| 国产精品美女久久久久久久久久久| 日韩美女视频在线| 欧美综合一区二区三区| 丰满少妇在线播放bd日韩电影| 奇米影视在线99精品| 一二三四社区欧美黄| 国产精品白丝在线| 久久尤物电影视频在线观看| 日韩亚洲欧美在线| 欧美视频一区二区三区四区| 91性感美女视频| 国产成人精品综合在线观看| 精彩视频一区二区| 美女精品一区二区| 日韩国产一二三区| 亚洲午夜精品网| 亚洲一区二区中文在线| 亚洲欧美日本韩国| 国产精品久久久久久一区二区三区 | 日韩欧美电影在线| 7777精品伊人久久久大香线蕉 | 91在线精品一区二区| 成人福利视频网站| 国产成人午夜精品影院观看视频| 激情文学综合网| 九九在线精品视频| 精品在线你懂的| 国产一级精品在线| 国产乱码精品一区二区三区五月婷| 激情小说欧美图片|