|
uint crc16dim(char *msg,uint msg_len)
// Полином (16,12,5,0) HDLC ISO3309
{
char i=0;
uint crc16 = 0xFFFF;
while(msg_len-- >0)
{
crc16 ^= *msg++;
for(i=0; i<8; i++){
if(0x1 & crc16) {
crc16 >>= 1;
crc16 ^= 0x8408;
}
else {
crc16 >>= 1;
}
}
}
return (crc16 ^= 0xFFFF);
}
E-mail: info@telesys.ru