Hi,
ich habe Probleme mit der Berechnung einer CRC-CCITT-16 0x8811
Momentan benutze ich den folgenden Code zur Berechnung der Crc
Code:
function crc16(const b: array of byte): Word;
var
CRC: Word;
i, j: integer;
begin
crc := $FFFF;
for i := 0 to length(b) - 1 do
begin
crc := crc xor b[i] shl 8;
for j := 1 to 8 do
if ((crc and $8000) <> 0) then
crc := ((crc shl 1) xor $1021)
else
crc := (crc shl 1)
end;
result := (crc and $FFFF);
end;
Hat bisher für die normale Crc16 CCITT auch immer super funktioniert. Nun wird aber scheinbar ein andres Polynom verwendet und ich bekomme es nicht richtig angepasst.
14 0 0 39 38 1 249 240 255 13 255 müsste als Crc 0xE28B ergeben. Ich komme allerdings egal was ich mache nicht auf diese Crc.
Jemand eine Idee woran es liegen könnte ?
Gruß Yannic