Cyclic Redundancy Check 16 (CRC16) calculation
[Libraries]

The Cyclic Redundancy Check 16 is a hash function that produces a checksum that is used to detect errors in transmissions. More...

Files

file  crc16.c
 

Implementation of the CRC16 calculcation.


file  crc16.h
 

Header file for the CRC16 calculcation.


Functions

unsigned short crc16_add (unsigned char b, unsigned short crc)
 Update an accumulated CRC16 checksum with one byte.
unsigned short crc16_data (const unsigned char *data, int datalen, unsigned short acc)
 Calculate the CRC16 over a data area.

Detailed Description

The Cyclic Redundancy Check 16 is a hash function that produces a checksum that is used to detect errors in transmissions.

The CRC16 calculation module is an iterative CRC calculator that can be used to cumulatively update a CRC checksum for every incoming byte.


Function Documentation

unsigned short crc16_add ( unsigned char  b,
unsigned short  crc 
)

Update an accumulated CRC16 checksum with one byte.

Parameters:
b The byte to be added to the checksum
crc The accumulated CRC that is to be updated.
Returns:
The updated CRC checksum.

This function updates an accumulated CRC16 checksum with one byte. It can be used as a running checksum, or to checksum an entire data block.

Note:
The algorithm used in this implementation is tailored for a running checksum and does not perform as well as a table-driven algorithm when checksumming an entire data block.
unsigned short crc16_data ( const unsigned char *  data,
int  datalen,
unsigned short  acc 
)

Calculate the CRC16 over a data area.

Parameters:
data Pointer to the data
datalen The length of the data
crc The accumulated CRC that is to be updated (or zero).
Returns:
The CRC16 checksum.

This function calculates the CRC16 checksum of a data area.

Note:
The algorithm used in this implementation is tailored for a running checksum and does not perform as well as a table-driven algorithm when checksumming an entire data block.

Generated on Mon Apr 11 14:23:51 2011 for Contiki 2.5 by  doxygen 1.6.1