Hilfe bei Dekodierung von Checksummen Berechnung

#7311722
Lesenswert?
• ▲
▼

Moin,

Axo, Jan V. == Michi.

Jan V. schrieb:

Dergute W. schrieb:

Was willst du denn dekodieren?

Den C-Code. Wie die Checksumme nun genau berechnet wird.

Puh, das ist halt etwas schwierig, wenn du kein C kannst. Kannst du irgendeine andere Programmiersprache?

CRC ist in jeder Sprache immer ein lustiges Geschiebe und ver-xordern. Manchmal mit Tabelle (auf mehr als 1bit Basis), manchmal ohne, so wie hier auf 1bit Basis. Mal ganz unter uns: Ich kann zwar C und weiss ungefaehr was es mit CRC auf sich hat, aber ich koennte ausm Stegreif so ein Programm eher nicht schreiben. Wenn ich wirklich die Innereien von sowas selber verstehen will/muss, muss ich mich jedesmal neu durch den ollen "Painless Guide" quaelen. Danach vergesse ich das immer ziemlich schnell. Aber nicht weitersagen ;-)

Gruss WK

#7311915
Lesenswert?
• ▲
▼

Setze den crc wert auf 255. Fuer jedes datenbyte, ueber das du den CRC berechnen willst, beginnend mit dem ersten Byte und hier aufhoerend mit dem 2.Byte tust du: Verknuepfe den crc wert mittels xor mit dem aktuellen Byte. Und jetzt genau 8mal: wenn das MSB von crc gesetzt ist, dann wird der neue Wert von crc so berechnet: der alte wert von crc wird um eine binaerstelle nach links geschoben, dann mit der Konstanten 0x31u, die da auf dezimal heissen wuerde: 49, exclusiv oder verknuepft. sollte das MSB von crc nicht gesetzt sein, dann wird der neue Wert von crc so berechnet: der alte wert von crc wird um eine binaerstelle nach links geschoben so, wenn das jetzt 8mal passiert ist, und alle (hier beiden) datenbytes zur Berechnung herangezogen wurden, dann und nur dann ist crc der wert und der wert ist crc. Gepriesen sind die Skifahrer. (Mann, muss mir fade sein)

Gruss WK

#7312131
Lesenswert?
• ▲
▼
  1. Du füllst 8 Flip-Flops mit 1-en.
  2. Dann verXORst Du den Inhalt mit dem nächsten zu verarbeitenden Datenbyte. (Beim 1. Durchlauf natürlich das 1. Byte!)
  3. Dann stellst Du Dir die Flip-Flops wie im Bild verschaltet mit den XORs vor und gibst allen FFs gleichzeitig hintereinander 8 Takte.
  4. Dann gehst Du zu 2, sofern Du noch Daten hast.
  5. In den 8 Registern steht nun Deine CRC.

Gruß Jobst

Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.