Hallo, in der AVR libc gibt es die Funktion
1 | _crc_ccitt_update (uint16_t __crc, uint8_t __data) |
die ich häufig benutze. Weiß jemand was man im HxD (Hexeditor) einstellen muss um auf das gleiche Ergebnis zu kommen? Grüße Werner
|
Forum: PC-Programmierung AVR CRC-16 CCITT mit HxD berechnen?Hallo, in der AVR libc gibt es die Funktion
die ich häufig benutze. Weiß jemand was man im HxD (Hexeditor) einstellen muss um auf das gleiche Ergebnis zu kommen? Grüße Werner Der Code sagt, dass das Polynom 0x8048 ist. Letztlich das gleiche wie die 0x1021 von Xmodem bit-swapped. Aber: das Bit-Swapping bei CCITT ist nicht nur beim Polynom, sondern generell. (Hängt damit zusammen, dass Kommunikationsprotokolle immer Bit 0 zuerst senden.) Musst du mal gucken, ob eine der "Reflektion"-Optionen (oder beide?) dann genau das bewirken. Schieb doch einfach mal einen Testvektor da durch. Aus 802.15.4 kenne ich den hier:
Im Original liest der sich:
:
Bearbeitet durch Moderator
Danke Jörg, bin weitergekommen. Ich habe mal Deinen Testvektor genommen:
Da kommt 0x3088 als Ergebnis raus. Dann mal diesen Testvektor z. B. hier einhacken: http://www.sunshine2k.de/coding/javascript/crc/crc_js.html Einstellungen: CRC 16, Polynom 0x1021, Init Value 0xFFFF, Input- & Resultreflect aktiviert, dann kommt man auf das selbe Ergebnis. Im HxD gilt das gleiche: CRC 16, Polynom 0x1021, Startwert 0xFFFF, Ein-/Ausgang reflektieren Vielen Dank! Werner schrieb: > Da kommt 0x3088 als Ergebnis raus Seltsam. Es sollte 0 rauskommen. Ich hatte das vor Jahrzehnten mal geschrieben (als ich bei Atmel mit IEEE-802.15.4-Transceivern gearbeitet habe), leider finde ich den Sourcecode gerade nicht mehr, aber das Binary funktioniert noch:
Ich glaube, der Unterschied ist, dass der Startvektor nicht 0xFFFF sondern 0x0000 ist. Jörg W. schrieb: > leider finde ich den Sourcecode gerade nicht mehr Ah, doch noch gefunden.
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
Noch kein Account? Hier anmelden.
|
|