Suche CRC 8

Gast #364183
Lesenswert?
• ▲
▼
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 #364185
Lesenswert?
• ▲
▼
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
Gast #364187
Lesenswert?
• ▲
▼
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 #364188
Lesenswert?
• ▲
▼
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

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.