Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
//---------------------------------------------------------------------------
unsigned char data[]={0x80, 0x06, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00};
//unsigned char data[]={0x08, 0x60, 0x00, 0x10, 0x00, 0x00, 0x04, 0x00}; // обратный порядок тетрад
//unsigned char data[]={0x01, 0x60, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00}; // обратный порядок бит
//---------------------------------------------------------------------------
unsigned char data_len=8;
//---------------------------------------------------------------------------
unsigned short int crc16_update(unsigned short int crc, unsigned char a)
{
unsigned short int i;
crc ^= a;
for (i = 0; i < 8; ++i)
{
if (crc & 1) crc = (crc >> 1) ^ 0xA001; // 0x8005
else crc = (crc >> 1);
}
return crc;
}
//---------------------------------------------------------------------------
unsigned short int CRC16(unsigned char * data, unsigned char len)
{
unsigned short int crc;
unsigned char i;
crc=0xffff;
for(i=0; i<len; i++) crc=crc16_update(crc, data[i]);
return crc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text=CRC16(data, data_len);
}
//---------------------------------------------------------------------------
Составить ответ | Вернуться на конференцию
Ответы