Fehler bei CRC-Bildung

OP (Firma: Uni R.) #691420
Lesenswert?
• ▲
▼
Hallo Leute,
es soll von einem "String" eine CRC erstellt werde. Dabei halte ich mich 
an die Routinen aus der util/crc16.h:

unsigned int _crc_ibutton_update(uint8_t crc, uint8_t data)
    {
  uint8_t i;

  crc = crc ^ data;
  for (i = 0; i < 8; i++)
  {
      if (crc & 0x01)
          crc = (crc >> 1) ^ 0x8C;
      else
          crc >>= 1;
  }

  return crc;
    }

In meinem Programm (mit der VCL erstellt (BCB6)) rufe ich die Routine 
auf:

                char str[30];
                uint8_t crc;

                strcpy(str, "DAT");
          strcat(str, ";");
          strcat(str, "0,1223:320");
                Label6->Caption=str;

                 for (uint8_t i=0; i<strlen(str); i++)
            crc = _crc_ibutton_update(crc, str[i]);

                Label7->Caption=IntToStr(crc);

Mir ist nun folgendes Problem aufgefallen: Wenn ich die maus aus dem 
Programmfenster herausbewege, verändert sich die ermittelte CRC obwohl 
der eingehende String der gleiche ist. Bleibt die Maus im Fenster bleibt 
die crc konstant. Könnt ihr mir das Verhalten erklären?

Viele Grüße,
Simon

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.