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

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

?? rc531.c

?? RC531
?? C
?? 第 1 頁 / 共 2 頁
字號:
#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)
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产丝袜欧美中文另类| 综合中文字幕亚洲| 久久精品国产亚洲一区二区三区| 欧美剧在线免费观看网站| 亚洲综合在线电影| 色哟哟一区二区三区| 中文字幕综合网| 成人av在线电影| 亚洲图片欧美激情| 91在线你懂得| 伊人婷婷欧美激情| 欧美视频三区在线播放| 亚洲一线二线三线久久久| 欧日韩精品视频| 亚洲成av人片www| 69av一区二区三区| 男女男精品视频| 日韩午夜在线观看视频| 美日韩一级片在线观看| 精品国产乱码久久久久久影片| 精品一区二区在线视频| 久久亚洲精华国产精华液| 国产成人免费在线视频| 国产精品麻豆视频| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲精品国产无套在线观| 在线观看av不卡| 日韩国产在线一| 欧美va日韩va| 国产福利91精品一区| 自拍偷在线精品自拍偷无码专区| 99国产精品久久久久久久久久久| 一区二区三区免费在线观看| 欧美精三区欧美精三区| 美女视频黄久久| 欧美激情综合五月色丁香小说| 成人动漫一区二区| 亚洲一区二区四区蜜桃| 91麻豆精品国产91久久久| 九九九精品视频| 国产精品国产三级国产aⅴ原创| 91免费版在线看| 日韩高清一区在线| 国产人成亚洲第一网站在线播放| 91网址在线看| 日韩精彩视频在线观看| 久久精品人人做人人爽人人| 91在线观看视频| 日韩vs国产vs欧美| 中文字幕免费在线观看视频一区| 色丁香久综合在线久综合在线观看| 午夜欧美2019年伦理| ww久久中文字幕| 色婷婷久久久综合中文字幕 | 精品国产亚洲在线| 丰满岳乱妇一区二区三区| 洋洋av久久久久久久一区| 欧美变态凌虐bdsm| 91在线免费看| 九九国产精品视频| 亚洲卡通欧美制服中文| 欧美一级理论片| 99久久精品免费| 麻豆91在线看| 亚洲欧美一区二区三区孕妇| 日韩一卡二卡三卡四卡| 99re这里只有精品首页| 奇米精品一区二区三区在线观看| 中文字幕高清不卡| 91精品国产91久久综合桃花 | 欧美日韩一区二区欧美激情| 国产精品99久久久久久久女警| 亚洲香蕉伊在人在线观| 久久久久久一二三区| 欧美性受极品xxxx喷水| 国产福利视频一区二区三区| 性做久久久久久久久| 中文字幕乱码亚洲精品一区| 欧美一区二区三区不卡| 色综合久久66| 国产成人夜色高潮福利影视| 日韩精品一区第一页| 中文字幕一区二区三区蜜月| 日韩欧美一区中文| 91极品视觉盛宴| 成人在线视频一区二区| 麻豆91精品视频| 樱桃国产成人精品视频| 欧美国产1区2区| 欧美videossexotv100| 欧美日韩国产一区二区三区地区| 成人免费电影视频| 久久99精品久久久久久国产越南 | 天堂va蜜桃一区二区三区 | 亚洲男女一区二区三区| 久久久.com| 欧美成人一区二区三区| 欧美人妖巨大在线| 一本色道久久综合亚洲精品按摩| 国产成人精品www牛牛影视| 美女视频网站久久| 三级影片在线观看欧美日韩一区二区| 亚洲欧美综合网| 亚洲国产激情av| 久久日韩精品一区二区五区| 制服.丝袜.亚洲.另类.中文 | 99综合电影在线视频| 精品亚洲成a人| 蜜臀av一级做a爰片久久| 亚洲第一主播视频| 亚洲综合无码一区二区| 中文字幕日本乱码精品影院| 国产亚洲欧美色| 久久久高清一区二区三区| 精品国产精品一区二区夜夜嗨| 欧美一区二区三区在线观看视频 | 欧美一区二区三区日韩| 欧美日韩另类国产亚洲欧美一级| 91视频.com| 色综合色综合色综合| 99r精品视频| 91亚洲精华国产精华精华液| 成人激情文学综合网| 成人免费观看av| av在线不卡网| 99久久精品免费精品国产| 99精品视频免费在线观看| www.久久精品| 99re这里只有精品6| 一本在线高清不卡dvd| 日本韩国精品在线| 91国产成人在线| 欧美午夜宅男影院| 在线成人av影院| 日韩色视频在线观看| 精品久久久久久综合日本欧美| 精品国产自在久精品国产| 亚洲精品在线电影| 久久久777精品电影网影网 | 欧美国产精品久久| 欧美激情一区三区| 亚洲欧洲www| 亚洲一区在线播放| 亚洲综合清纯丝袜自拍| 亚洲不卡在线观看| 麻豆精品在线观看| 久久99精品国产麻豆婷婷| 国产美女一区二区| 丰满少妇久久久久久久| 91尤物视频在线观看| 欧美午夜不卡在线观看免费| 欧美另类videos死尸| 欧美不卡一区二区| 中文字幕巨乱亚洲| 一区二区在线免费观看| 天天免费综合色| 激情成人综合网| 成人av免费观看| 欧美色综合久久| 日韩欧美中文字幕一区| 国产亚洲成aⅴ人片在线观看| 日韩理论片中文av| 日韩综合在线视频| 国产盗摄女厕一区二区三区| 99视频超级精品| 欧美日韩高清影院| 亚洲精品一区二区三区精华液 | 麻豆91免费观看| 成人精品视频一区二区三区尤物| 91蜜桃在线观看| 91精品婷婷国产综合久久| 久久久.com| 亚洲在线视频网站| 久久超碰97中文字幕| 波多野结衣欧美| 777亚洲妇女| 亚洲国产精品成人综合| 亚洲精品国产品国语在线app| 琪琪久久久久日韩精品| 成人在线视频一区| 欧美二区乱c少妇| 欧美韩国一区二区| 天天色综合天天| 成人国产精品免费观看动漫| 欧美日产国产精品| 欧美激情一区二区三区蜜桃视频 | 色综合视频在线观看| 日韩视频免费直播| 自拍偷在线精品自拍偷无码专区| 日韩av在线播放中文字幕| proumb性欧美在线观看| 56国语精品自产拍在线观看| 久久精品一区二区三区四区| 亚洲午夜影视影院在线观看| 国产一区二区影院| 欧美性大战xxxxx久久久| 久久久久久久久久久久久久久99 | 一区二区三区成人| 国产一区二区美女诱惑| 欧美日韩高清在线播放|