📄 main.c
字号:
#include "Hardware.h"
#include "RcComm.h"
#include "PcdShare.h"
#include "PcdUtils.h"
#include "MfReg.h"
#include "MfRc500.h"
#include "MfErrNo.h"
#include "cardhead.h"
#include <intrins.h>
#include <string.h>
#include "X5045.h"
#include "newcard.h"
/*********************************************/
extern unsigned char ResetAllCard(void);
extern unsigned char RfSwitchOff(void);
extern unsigned char InitPcd(void);
extern char OpenRC(void);
extern void CloseRC(void);
extern char PcdReadE2(unsigned short startaddr,
unsigned char length,
unsigned char * DataBuffer);
/*******************************************/
extern void CommTransact(void);
extern void TestLoop(void) ; //2002.9.11 老化测试
int_0() interrupt 0 //using 3
{
SingleResponseIsr();
}
/////////////////////////////////////////////////////////////////////////////
extern uchar xdata ComBuffer[MAXLEN];
uchar idata ComCount;
main()
{
uchar RDataTemp;
uchar flag=0;
if(flag)
{
ResetAllCard();
RfSwitchOff();
InitPcd();
OpenRC();
CloseRC();
PcdReadE2(00,10,ComBuffer);
PcdClose();
}
AUXR=0X00;
//PMR=0X01;
init_X5045(0X00);
SetBaud(Baud115200);
PcdOpen();
Beep(3,100);
SleepMs(50);
W_DOG();
Mf500PcdConfig();
Reset1();
TestLoop();
SleepMs(50);
while(1)
{
W_DOG();
ComCount++;
if(ComCount>MAXLEN)
{
ComCount=1;
memset(ComBuffer,0x00,4);
}
while(RI==0)
{
W_DOG();
}
RI=0;
RDataTemp=SBUF;
if((ComCount==1) && (RDataTemp==STX))
{ /* Check STX */
ComBuffer[ComCount-1]=STX;
continue;
}
if((ComCount==1) && (RDataTemp!=STX))
{
ComCount=MAXLEN;
continue;
}
if(ComCount==2)
{
if(RDataTemp>(MAXLEN-3))
{ /*len error*/
ComCount=MAXLEN; /*Set ComCount>Maxlen*/
SleepMs(2); /*上位机发送的数据长度过大,整个数据包长度大于MAXLEN*/
SendMsError();
}
else
{
ComBuffer[1]=RDataTemp;
}
continue;
}
if((ComCount>2)&&(ComCount<=(ComBuffer[1]+3)))
{ /*get command */
ComBuffer[ComCount-1]=RDataTemp;
continue;
}
if(ComCount==(ComBuffer[1]+4))
{
if(RDataTemp==ETX)
{
ComBuffer[ComCount-1]=RDataTemp; //结束字节送入ComBuffer[]
if((CheckCRC())!=CrcOK)
{
SendMsError();
}
else
{
CommTransact();
}
}
else SendMsError();
ComCount=MAXLEN;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -