
Page 74
void MakeCrcTable( unsigned int Polynomial )
{
unsigned int ccc;
for( ccc=0; ccc<256; ccc++ )
CrcTable[ccc] = GenCrc( ccc, Polynomial, 0 );
}
unsigned int MakeCrc(unsigned char *buff, unsigned int CrcCount)
{
unsigned int crc;
crc = CRC16(buff, CrcCount);
return crc;
}
unsigned short CRC16( unsigned char *puchMsg, unsigned short usDataLen )
{
unsigned char uchCRCHi = 0xFF;
unsigned char uchCRCLo = 0xFF;
unsigned uIndex;
while( usDataLen-- ) {
uIndex = uchCRCHi ^ *+;
uchCRCHi = uchCRCLo ^ ( CrcTable[uIndex] & 0xFF );
uchCRCLo = ( CrcTable[uIndex] >> 8 ) & 0xFF;
}
return( ( uchCRCHi << 8 ) | uchCRCLo );
}
unsigned int CheckCrc(unsigned char *buff, unsigned int CrcCount)
{
unsigned int crc;
CrcCount -= 2;
crc = CRC16(buff, CrcCount);
buff += CrcCount;
if(( (*buff++ & 0xff) != (( crc>>8) & 0xff)) || ( ( *buff & 0xff ) != (crc & 0xff )))
{ /* Error occurred */
return 1;
}
else { /* Error did not occur */
return 0;
}
}
Содержание ACCURA 7500
Страница 6: ...Page 6 Standard Compliance Process Control Equipment E324900...
Страница 75: ......