适合单片机的半字节查表的Crc16方法
()
王佰营
半字节查表的Crc16方法,占用FLASH的空间小,执行速度快,非常适用于单片机应用。
一、C语言程序()
unsigned int crc_table[16]=
{
0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,
};
unsigned int Crc16(unsigned char *ptr, unsigned char len)
{
unsigned int crc;
unsigned char da;
crc=0;
while(len--!=0)
{
da=crc>>12;
crc<<=4;
crc^= crc_table [da^(*ptr/16)];
da=crc>>12;
crc<<=4;
crc^=crc_table[da^(*ptr&0x0f)];
ptr++;
}
return(crc);
}
二、汇编语言程序()
;=====================