导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]KEIL C6.12版本CRC程序出错,请执教

* 84893: [求助]KEIL C6.12版本CRC程序出错,请执教

   weiym 
weiym发表的帖子 

 [求助]KEIL C6.12版本CRC程序出错,请执教
本人在做项目时候,想用C51来实现CRC,下面是程序。
程序对数据的9个数据进行crc校验,结果应该是0XF7F5,
这个程序用TURBO C测试,结果正确。可是用KEIL C,结果是0XE2D6。
为什么?请指教。

unsigned int crc_16(unsigned char *ptr, unsigned char len)
{
 unsigned char *buf,i,j,err;
 unsigned int *CRC;

 buf= &ptr[len];
 CRC=(unsigned int *)buf;
 buf[0]=0xff;
 buf[1]=0xff;
 for(i=0;i  <len;i++)
 {
  buf[0]=buf[0]^ptr[i];
  for(j=0;j  <8;j++)
  {
   err=buf[0]&(0x01);
   *CRC=(*CRC)/2;
   if(err) *CRC=*CRC^(0xa001);
  }
 }
 return(*CRC);
}

void main()
{
  unsigned char buf[12]={0x1,0x3,0x6,0x15,0xca,0x74,0xb3,0x70,0xfe};
  unsigned int i, crc;
  crc=crc_16(buf,9);
}

发表时间:2005年10月20日22:16:32

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:[原创]INT0 作模拟串口的收。数据经常收错,大家来看看什么原因。程序如下 IN
[下一篇帖子]:S3C2410 TFT-LCD控制参数设置问题对于DCLK以及HSYNC、VSYNC在S3