|
Например это
void crc16_calc(BYTE data_byte, WORD* crc16)
{
/* Calculate CRC-16 value; uses The CCITT-16 Polynomial,
expressed as X^16 + X^12 + X^5 + 1
initial crc = (WORD)0xffff */
BYTE b;
*crc16 ^= (((WORD) data_byte) << 8);
for( b=0; b<8; ++b ){
if((*crc16 & (WORD) 0x8000)!=(BYTE)0x00)
*crc16 = (*crc16 << 1) ^ (WORD) 0x1021;
else
*crc16 = (*crc16 << 1);
}
}
E-mail: info@telesys.ru