EasyManuals Logo

Alpha Omega Instruments 800 Series User Manual

Default Icon
117 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #114 background imageLoading...
Page #114 background image
CYCLICAL REDUNDANCY CHECKSUM (CRC) ALGORITHM
This C routine, calc_crc(), calculates the cyclical redundancy checksum, CRC, for a
string of characters. The CRC is the result of dividing the string by 0xA001.
Modbus applications calculate the packet’s CRC, then append it to the packet.
#define POLYNOMIAL 0xA001;
unsigned int calc_crc(unsigned char *start_of_packet, unsigned char
*end_of_packet)
{
unsigned int crc;
unsigned char bit_count;
unsigned char *char_ptr;
/* Start at the beginning of the packet */
char_ptr = start_of_packet;
/* Initialize CRC */
crc = 0xffff;
/* Loop through the entire packet */
do{
/* Exclusive-OR the byte with the CRC */
crc ^= (unsigned int)*char_ptr;
/* Loop through all 8 data bits */
bit_count = 0;
do{
/* If the LSB is 1, shift the CRC and XOR the polynomial mask with the CRC */
if(crc & 0x0001){
crc >>= 1;
crc ^= POLYNOMIAL;
}
/* If the LSB is 0, shift the CRC only */
Else{
crc >>= 1;
}
} while(bit_count++ < 7);
} while(char_ptr++ < end_of_packet);
Return(crc);
}
ALPHA OMEGA INSTRUMENTS CORP. Instruction Manual
Series 800/850 Thermoelectric Cooler Controller Page 109

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Alpha Omega Instruments 800 Series and is the answer not in the manual?

Alpha Omega Instruments 800 Series Specifications

General IconGeneral
BrandAlpha Omega Instruments
Model800 Series
CategoryController
LanguageEnglish