?? rc500rst.c
字號:
#include <reg52.h>
#include "rc500.h"
/*****************************************************************************
* 復位并初始化RC500
*注意:RC500上電后應延時500ms才能可靠初始化
******************************************************************************/
char PcdReset()
{
char status=MI_OK;
char n=0;
uint i=0x4000;
RC500_CE=0;
RC500_RST=1;
DelayMs(100);
RC500_RST=0;
while(i!=0&&n!=0x3f)
{
n=ReadRawRC(RegCommand);
i--;
}
while(i!=0&&n==0x3f)
{
n=ReadRawRC(RegCommand);
i--;
}
if(i!=0)
{
WriteRawRC(RegPage,0x80);
n=0x80;
while((i!=0)&&(n&0x80))
{
n=ReadRawRC(RegCommand);
i--;
}
if(i==0||(n&0xff))
{
status=MI_RESETERR;
}
}
else
{
status=MI_RESETERR;
}
if(status==MI_OK)
{
WriteRC(RegClockQControl,0x0);
WriteRC(RegClockQControl,0x40);
DelayUs(100);
ClearBitMask(RegClockQControl,0x40);
WriteRC(RegBitPhase,0xad);
WriteRC(RegRxThreshold,0xff);
WriteRC(RegRxControl2,01);
WriteRC(RegFIFOLevel,0x1a);
WriteRC(RegTimerControl,0x02);
WriteRC(RegIRqPinConfig,0x02);
WriteRC(RegTxControl,0x5b);
}
return status;
}
/*****************************************************************************
* 延時
*****************************************************************************/
void DelayMS(uchar j)
{
uchar i,n;
for(i=0;i<j;i++)
{ for(n=0;n<230;n++);
}
}
void DelayUs(uchar j)
{
uchar i,n;
n=j/5;
for(i=0;i<n;i++);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -