-
        

Ergebnis 1 bis 7 von 7

Thema: Verwendung von crc16.h

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    46
    Beiträge
    2.236

    Verwendung von crc16.h

    Anzeige

    Hallo,

    Hat jemand schon mit crc16.h gearbeitet ?

    Ich möchte ein Dattensatz per Funk vom µC 1 zu µC 2 schicken und das ganze mit einer crc Prüfsumme versehen.
    Nur wie nutze ich die crc16.h Funktionen ?
    Irgendwie werde ich daraus nicht schlau

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    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]);
    Ich denke, das macht es klarer, als irgendwelche langen Erklärungen.
    Die anderen Funktionen in crc.h gehen genau so, es sind nur unterschiedliche CRC-Algorithmen.
    MfG
    Stefan

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    46
    Beiträge
    2.236
    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
    Software is like s e x: its better when its free.
    Linus Torvald

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    der Anfangswert 0xffff für die Prüfsumme ist beliebig, oder zwingend 0xffff ?
    Jeder CRC-Algorithmus hat einen optimalen Startwert, bei diesem ist es eben 0xffff. Was ist das Problem daran, 0xffff zu nehmen?

    und wie geht man auf der Empfangsseite vor ?
    Klar kann ich die gleiche Funktion nutzen und den Endwert mit dem Wert vom Sender vergleichen.
    Genau so.

    Kann ich aber die Prüfsumme vom Sender als Anfangswert beim Empfänger einsetzen ?
    Kommt dann bei Übereinstimmung 0 raus ?
    Nein.
    Und auch hier wieder: welches Problem hast du mit der "normalen" Vorgehensweise?

    Zwei Fragen hätte ich doch noch,...
    Das Zählen üben wir aber noch mal.
    MfG
    Stefan

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    46
    Beiträge
    2.236
    Was ist das Problem daran, 0xffff zu nehmen?
    welches Problem hast du mit der "normalen" Vorgehensweise?
    Ich habe keine Probleme damit, habe lediglich gefragt, wieso und warum, mehr nicht.

    Naja, danke für Deine Mühe...
    Software is like s e x: its better when its free.
    Linus Torvald

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Ich habe keine Probleme damit, habe lediglich gefragt, wieso und warum, mehr nicht.
    Sorry, für mich klang es nach:
    "Ich möchte es nicht so machen, geht es nicht auch anders?"
    MfG
    Stefan

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    46
    Beiträge
    2.236
    Sorry, für mich klang es nach:
    "Ich möchte es nicht so machen, geht es nicht auch anders?"
    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.

    Für mich als nicht Mathematiker böhmische Dörfer, ich habe das ganze zwischendurch getestet, klappt einwandfrei

    Danke nochmals
    Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •