CRC16 Berechnung

Die Arduino Plattform bringt mit ihrer Entwicklungsumgebung bereits die AVR Libc mit. In der AVR Libc gibt es im „Util“ Paket auch eine Implementierung von CRC16, die recht einfach verwendet werden kann. Um zu zeigen, wie man einen CRC16 mit dieser Funktion berechnet, habe ich folgenden Beispiel-Sketch geschrieben. Ist doch einfach, oder :-)?

1
#include <util/crc16.h>
 
void setup() {
  Serial.begin(9600);
  Serial.println("CRC16 test started.");
}
 
void loop() {
  byte data[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
 
  unsigned int crc = 0;
 
  for (unsigned int i = 0; i < sizeof(data); i++)
  {
    crc = _crc16_update(crc, data[i]);
  }
 
  Serial.print("CRC16 = ");
  Serial.println(crc, HEX);
  Serial.println();
 
  delay(2000);
}
elektronik/crc16_berechnung.txt · Zuletzt geändert: 2013/01/31 20:01 von octoate
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0