Вверх ↑
Ответов: 36
Рейтинг: 7
#1: 2011-04-19 13:36:45 ЛС | профиль | цитата
Прошу прощения, код не весь вставил:

#cpp
//-----------------crc8()-------------------------

uint8 crc8(uint8*buf, uint8 data_byte)
{
uint8 crc=0x00;
uint8 data_bit=0x80;

while(data_byte>0)
{
if(((crc&0x01)!=0)!=((buf[data_byte]&data_bit)!=0))
{
crc>>=1;
crc^=0xCD;
}
else crc>>=1;

data_bit>>=1;

if(!data_bit)
{
data_bit=0x80;
data_byte--;
}
}
return(crc);
}

nesco, спасибо, щас посмотрю
------------ Дoбавленo в 22.36:
А как определить полином?

Все что у меня есть - это кусок кода, построенный на побитовых операциях (см. выше).

Попробовал их повторить - только запутался:


Может можно куском кода как-нибудь вставить?
------------ Дoбавленo в 13.36:
Попытался сделать на Visual Basic, пишет Sintax Error.
А где - не пишет.



 for i = 0 to UBound(buf)
'if (((crc and 1) <> 0) <> ((buf(i) and data_bit) <> 0)) Then
if (((crc and 1) <> 0) <> ((Chr("&h" & buf(i)) and data_bit) <> 0)) Then
crc = crc >> 1
crc = crc Xor 205
else
crc = crc >> 1
End If

data_bit = data_bit >> 1

if (data_bit <> 0) Then

else
data_bit = 128
i = i - 1
End If
next
sys.onRes crc
End Sub

карма: 0

0