unsigned int cal_crc(unsigned char *ptr, unsigned char len)
{
unsigned int crc ;
unsigned char da ;
/* CRC 余式表 */
unsigned int crc_ta[16]={ 0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef
};
crc=0;
while(len--!=0)
{
da=((unsigned char)(crc/256))/16; /* 暂存CRC 的高四位 */
crc<<=4; /* CRC 右移4 位,相当于取CRC 的低12 位)*/
crc^=crc_ta[da^(*ptr/16)]; /* CRC 的高4 位和本字节的前半字节相加后查表计算CRC,然后加上上一次CRC 的余数 */
da=((unsigned char)(crc/256))/16; /* 暂存CRC 的高4 位 */
crc<<=4; /* CRC 右移4 位, 相当于CRC 的低12 位) */
crc^=crc_ta[da^(*ptr&0x0f)]; /* CRC 的高4 位和本字节的后半字节相加后查表计算CRC,然后再加上上一次CRC 的余数 */
ptr++;
}
return(crc);
}
在msp430环境中,下载仿真没问题。但我在memory里面看crc的值。怎么没有,应该是两个字节crc值。没找到在上面地方。用鼠标点击到那看不到地址。也就看不了crc值。 |