📄 int.c
字号:
#include "Global.h"
#include "Int.h"
extern unsigned int gFlag;
extern unsigned char gDataBuff[16];
extern int gCurDataPos2;
extern int gCurDataPos;
extern int gDataCount;
extern unsigned char gMSG;
//=========================================================================================
//
//=========================================================================================
void IRQ3(void) __attribute__ ((ISR));
void IRQ3(void)
{
gMSG = (*P_IOB_Data&0xFF00)>>8;
gDataBuff[gCurDataPos++] = gMSG;
gDataCount ++;
if(gCurDataPos == 16)
gCurDataPos = 0;
gFlag |= REV_MSG_OK;
*P_INT_Clear=C_IRQ3_EXT2;
}
//=========================================================================================
//目前还没有纠错
//=========================================================================================
void DeLinearGroup(unsigned int pos1,unsigned int pos2)
{
}
unsigned char IsSync()
{
return 0;
}
//=========================================================================================
//如果数据有效,保存在全局变量中
//=========================================================================================
unsigned char IsValidData()
{
/* unsigned int tmpI=0;
unsigned char c,tmpD=0;
unsigned int i=0x80;
for(c=0;c<8;c++)
{
if(tBuff2[c])
tmpD |= i;
i >>= 1;
}
i = 0x8000;
for(c=8;c<24;c++)
{
if(tBuff2[c])
tmpI |= i;
i >>= 1;
}
if(tmpI == CRCCheck(tmpD))
{
gDataBuff[gCurDataPos2++] = tmpD;
if(gCurDataPos2>=16)
gCurDataPos2 = 0;
gDataCount ++;
return 1;
}
*/
return 0;
}
//=========================================================================================
//
//=========================================================================================
unsigned int CRCCheck(unsigned char dat)
{
unsigned int crc = 0;
unsigned char i;
for(i=0x80; i!=0; i>>=1)
{
if((crc&0x8000)!=0)
{crc<<=1; crc^=0x1021;}
else
crc<<=1;
if((dat&i)!=0) crc^=0x1021;
}
return(crc);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -