Suche CRC 8

Gast #364183
Hallo

suche einen einfachen CRC8-Code für den MSP 430 135. Ich will aus 2
oder 3 Byte eine Prüfsumme berechnen lassen, die ich dann zusätzlich
als "viertes" Byte schicken kann.
Es wäre auch hilfreich wenn ich wüsste wie dies dann auf der
Empfängerseite aussieht. (Auch ein MSP430 135). Die ganze
Datenkommunikation läuft über die UART-Schnittstelle ab.

mfg Petra
Gast
1
char crc8 (char crc, char n)
2
{
3
  n ^= crc;
4
  crc = 0;
5
  if( n & 0x01 ) crc  = 0x5E;
6
  if( n & 0x02 ) crc ^= 0xBC;
7
  if( n & 0x04 ) crc ^= 0x61;
8
  if( n & 0x08 ) crc ^= 0xC2;
9
  if( n & 0x10 ) crc ^= 0x9D;
10
  if( n & 0x20 ) crc ^= 0x23;
11
  if( n & 0x40 ) crc ^= 0x46;
12
  if( n & 0x80 ) crc ^= 0x8C;
13
  return crc;
14
}


Peter
> Es wäre auch hilfreich wenn ich wüsste wie dies dann auf der
> Empfängerseite aussieht.

Das ist ganz simpel:
Du hast 4 Bytes empfangen. Aus den ersten 3 errechnest Du wieder
die CRC und vergleichst mit dem 4 empfangenen Byte.
Gast
Schaut eigentlich ganz simpel aus der Code von peter dannegger. Gibts
dazu auch ne kleine Erklärung?

Also was muss ich mit CRC übergeben? Soll das mein Generatorpolynom
sein?

Und was muss ich bei n übergeben?
Ich bin da nicht ganz so firm, wie manch andere hier.
Gast
Nun, die Funktion muß pro Datenbyte aufgerufen werden (n = Datenbyte,
crc = Rückgabewert des vorherigen Aufrufs, bzw. Startwert).

Der letzte Rückgabewert ist dann die CRC.


Z.B. für 3 Bytes:

crc = crc8(crc8(crc8(0, byte1), byte2), byte3);


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.