Descargar Imprimir esta página

RealTrace Petscan RT 250BT Manual Del Usuario página 16

Publicidad

El código fuente C ANSI de la función que permite calcular una palabra de control de una cadena de caracteres que
termina
por
el
carácter
«
http://www.zorc.breitbandkatze.de/crc.html
rellenar correctamente los campos antes de efectuar el cálculo de CRC y verificar para la cadena de
carácter "123456789", que la palabra de control es igual a 0xE5CC.
/*=======================================================================*/
/* Funcion that calculates CRC-CCITT 16 bits
/* INPUT:
/*
unsigned char *inbuffer : 8 bits input vector over which CRC checksum is calculated
/*
/* OUTPUT:
/*
unsigned int: 16 bits return of crc_ccitt checksum
/*=======================================================================*/
/* OVERVIEW:
/*
Width = 16 bits
/*
Truncated polynomial = 0x1021
/*
Initial value = 0xFFFF
/*
No XOR is performed on the output CRC
/* DESCRIPTION:
/*
Computing a POLY number from the crc equation.
/*
Crc s are usually expressed as an polynomial expression such as:
/*
/*
x^16 + x^12 + x^5 + 1
/* CHECK
/*
0xE5CC This is the checksum for the ascii string "123456789"
/* EXAMPLE
/* http://www.zorc.breitbandkatze.de/crc.html
*=======================================================================*/
#define crc_poly 0x1021
unsigned int crc_ccitt16 (unsigned char *inbuffer) {
unsigned int crc_checksum = 0xffff;
unsigned char ch;
char i,xor_flag;
while ( *inbuffer!=0)
{
ch = *inbuffer++;
for(i=0; i<8; i++)
{
xor_flag=(crc_checksum & 0x8000)? 1:0;
crc_checksum = crc_checksum << 1;
if (ch & 0x80) crc_checksum++;
if (xor_flag) crc_checksum = crc_checksum ^ crc_poly;
ch = ch << 1;
"/x00"
se
describe
», le permite tambien calcular la palabra de control. Antes, era necesario
must termined by 0x00
// Polinomio del CRC-CCITT-16Bits
más
abajo.
El
aplet
16
JAVA
del
sitio
Internet

Publicidad

loading

Productos relacionados para RealTrace Petscan RT 250BT