![RainWise CC-3000 Скачать руководство пользователя страница 23](http://html1.mh-extra.com/html/rainwise/cc-3000/cc-3000_user-manual_3475513023.webp)
23
/* Global Variables */
unsigned short int acc;
/* ****************************************************************************
/* Initialize Accumulator
/* ****************************************************************************/
void
crc16Init(void)
{
acc= 0;
}
/* ****************************************************************************
/* Add byte
/* ****************************************************************************/
void
crc16Add( unsigned short int _data )
{
unsigned char n;
for (n=8; n ;n--)
{
if ((acc & 0x8000)>0)
{
acc<<= 1;
_data<<= 1;
if ((_data & 256)!=0)
acc++;
acc^= 0x1021;
}
else
{
acc<<= 1;
_data<<= 1;
if ((_data & 256)!=0)
acc++;
}
}
}
/* ****************************************************************************
/* Return CRC accumulator
/* ****************************************************************************/
unsigned short int crc16Acc(void)
{
unsigned short int tmp= acc, retval;
crc16Add(0);
crc16Add(0); // add two zeros to get a valid crc
retval= acc;
acc= tmp; //restore acc
return retval;
}
Содержание CC-3000
Страница 12: ...12...