Berechnung von CRC

28/06/2009 - 08:41 von ChristianH | Report spam
Hi,

ich muss aus einem Byte-Array eine Prüfsumme berechnen. Die Definition
hierfür lautet:
Arithmethische Summe aus den 8-Bit-Bytes berechnen (Byte-weise addieren) und
zu einem 14-Bit-Word ohne Berücksichtigung des Überlaufs (0x3fff) berechnen.
Danach Trennung in 2 x 7 Bit.

Ich habe diese Berechnung wie folgt umgesetzt. Fàllt euch hier evtl. ein
Fehler auf?

UInt16 arithmeticalSum = 0x0000;
completeBufferIndex = 0;

for (int counter = 0; counter < ByteCounter; counter++)
{
arithmeticalSum +=
this._completeConfigBuffer[completeBufferIndex];
completeBufferIndex++;
}

arithmeticalSum &= 0x3fff;

Hier die Trennung in 2x 7-Bit:

blkChksHigh = (byte)((arithmeticalSum >> 7) & 0x7f);
blkChksLow = (byte)(arithmeticalSum & 0x7f);

Vielen Dank und viele Grüße
Christian
 

Lesen sie die antworten

#1 Peter Fleischer
28/06/2009 - 08:51 | Warnen spam
"ChristianH" schrieb im Newsbeitrag
news:

Ich habe diese Berechnung wie folgt umgesetzt. Fàllt euch hier evtl. ein
Fehler auf?



Ab einer gößeren Bytemenge gibt es einen Überlauf. Um das zu verhindern,
sollten die linken Bits in der Schleife abgetrennt werden.

Du erhöhst Deine Chance, dass Deine Frage überhaupt gelesen und qualifiziert
und schnell beantwortet wird, wenn Du Deinen Realnamen im Absender
einstellst (Vor- und Zuname).

Viele Grüsse
Peter

Ähnliche fragen