Thema: Delphi CRC-CCITT-16 0x8811

Einzelnen Beitrag anzeigen

Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#1

CRC-CCITT-16 0x8811

  Alt 11. Jun 2012, 19:04
Delphi-Version: 7
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
  Mit Zitat antworten Zitat