CRC Berechnung - Polynom 0x13 BiSS

OP #3578847
Lesenswert?
• ▲
▼
Hallo liebe Forengemeinde
ich hab ein dickes Problem bei der CRC Berechnung für eine BISS 
Schnittstelle.
http://www.biss-interface.com/files/BiSS_AN3_appnote_E1en.pdf

Die Variante im Link funktioniert prinzipiell, ist aber sehr umständlich 
und für einen AVR ein bisschen groß.
Haber schon fleißig das Netz durchforstet, aber leider nichts zum 
Generatorpolynom 10011 gefunden.
Habe schon einiges ausprobiert, leider nicht von erfolg gekrönt.
Die Rechnung auf
http://www.leischner.inf.fh-bonn-rhein-sieg.de/lehrmat/crc.htm
funktioniert auch.
Leider ist dort kein Code zu finden.

Wenn mir jemand helfen könnte wäre ich sehr dankbar.
Am liebsten war kleines mit Bitschieben und Xor. :-)
Die Daten die aus denen das Polynom berechnet wird sind 11 Bit lang und 
liegen in einem uint_16t vor oder auch als 2x uint8.

Vielen Dank
Gast #3583313
Lesenswert?
• ▲
▼
Hallo,
da sich kein anderer rührt
1
// das ist die CRC-Berechnung für einen 11-Bit Wert mit Polynom 0x13
2
// das Ergebnis hat 4 Bit
3
uint8_t  getCRC(uint16_t input)
4
{
5
  uint8_t i;
6

7
  input = input & 0xfff;            // auf maximal 12 bit beschränken, geht auch mit 12bit, aber nicht mehr
8
  for (i=0 ; i<12 ; i++){
9
    input = input << 1;
10
    if( (input & 0x1000) )
11
        input ^= 0x1300;            // die crc-Berechnung findet im high-byte statt
12
  }
13
return ((input>>8)&0xff);           // return das high-byte
14
}

Gruss
Gast #5776593
Lesenswert?
• ▲
▼
Hallo Zusammen,

ich kämpfe auch gerade mit der CRC Berechnung und möchte mich erstmal 
herzlich dafür bedanken, dass hier jemand die Lösung für mein Problem 
eingestellt hat. Daumen hoch :-)

Kann mir vielleicht noch jemand erklären, wie man auf diese Lösung 
kommt?
Ich habe das irgendwie nicht verstanden.

Vielen Dank schon mal im voraus und einen schönen Tag!


Gruß Patrick

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.