Werbung
Linus TorvaldSoftware is like s e x: its better when its free.
Ich denke, das macht es klarer, als irgendwelche langen Erklärungen.Code:int i; uint8_t data[SIZE_OF_DATA]; ... uint16_t crc = 0xffff; for (i=0;i<SIZE_OF_DATA;i++) crc = crc16_update(crc,data[i]);
Die anderen Funktionen in crc.h gehen genau so, es sind nur unterschiedliche CRC-Algorithmen.
MfG
Stefan
Hallo,
Danke für die Antwort,eigentlich verständlich.
Zwei Fragen hätte ich doch noch,
der Anfangswert 0xffff für die Prüfsumme ist beliebig, oder zwingend 0xffff ?
und wie geht man auf der Empfangsseite vor ?
Klar kann ich die gleiche Funktion nutzen und den Endwert mit dem Wert vom Sender vergleichen.
Kann ich aber die Prüfsumme vom Sender als Anfangswert beim Empfänger einsetzen ?
Kommt dann bei Übereinstimmung 0 raus ?
Danke und Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Jeder CRC-Algorithmus hat einen optimalen Startwert, bei diesem ist es eben 0xffff. Was ist das Problem daran, 0xffff zu nehmen?der Anfangswert 0xffff für die Prüfsumme ist beliebig, oder zwingend 0xffff ?
Genau so.und wie geht man auf der Empfangsseite vor ?
Klar kann ich die gleiche Funktion nutzen und den Endwert mit dem Wert vom Sender vergleichen.
Nein.Kann ich aber die Prüfsumme vom Sender als Anfangswert beim Empfänger einsetzen ?
Kommt dann bei Übereinstimmung 0 raus ?
Und auch hier wieder: welches Problem hast du mit der "normalen" Vorgehensweise?
Das Zählen üben wir aber noch mal.Zwei Fragen hätte ich doch noch,...![]()
MfG
Stefan
Was ist das Problem daran, 0xffff zu nehmen?Ich habe keine Probleme damit, habe lediglich gefragt, wieso und warum, mehr nicht.welches Problem hast du mit der "normalen" Vorgehensweise?
Naja, danke für Deine Mühe...
Linus TorvaldSoftware is like s e x: its better when its free.
Sorry, für mich klang es nach:Ich habe keine Probleme damit, habe lediglich gefragt, wieso und warum, mehr nicht.
"Ich möchte es nicht so machen, geht es nicht auch anders?"
MfG
Stefan
Nein,nein ich habe mich ja schon etwas über crc informiert, bevor ich diese Frage gestellt habe und ich dachte daß der Anfangswert irgendwas mit Generatorpolynom zu tun hat, aber nachdem ich in der avr-libc nachgeschaut habe ist der Polynom für diese Funktion 0xa001 und der Anfangswert 0xffff.Sorry, für mich klang es nach:
"Ich möchte es nicht so machen, geht es nicht auch anders?"
Für mich als nicht Mathematiker böhmische Dörfer, ich habe das ganze zwischendurch getestet, klappt einwandfrei![]()
Danke nochmals
Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Lesezeichen