Hallo, ich habe eine Routine, welche mir eine Look-Up-Table mit 256 Einträgen (je 16 Bit) produziert. So kann ich die Checksumme für ein einzelnes Byte direkt per lookuptable[byte] erhalten. Meine Frage: Wie ist bei der Übertragung mehrerer Bytes nun vorzugehen? Im Moment führe ich einfach fortlaufend XOR Operationen zwischen den einzelnen Checksummen durch bis alle Bytes abgearbeitet wurden. Ist das so korrekt? Danke, Alex
Bei CRCs besteht normalerweise kein Grund, das Rad neu zu erfinden. Gibt's 8/16/32-bittig fertig im Internet, bitseriell und byteseriell.
Guck dir mal die Application Note 27 von Dallas/Maxim an (www.maxim-ic.com). Mir hats verständnismäßig ebenfalls geholfen. Gruß Ralf
Also dort sieht es so aus, als wenn das Vorgehen so wäre: Startwert xor 1.Byte Ergebnis als Index für Lookup-Table Wert aus Tabelle xor 2.Byte Ergebnis erneut als Index für Lookup-Table usw.
Hallo, Sorry das ich den urlaten Thread ausgrabe... Wie oben schon steht wird in den Implementierungen von CRC immer so vorgegangen: Rest XOR neuen Byte und weiter rechnen damit. Wenn man jedoch von Hand rechnet wird der Rest einfach vorne an das neue Byte angehängt als Startwert? somit bekommt man ein anderes Ergebniss.. ? Welches ist nun die richtige Vorgehensweise? mfg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.