Search This Blog

Monday, November 26, 2018

CRC C Code

// CRC C CODE USED FOR MODBUS COMMUNICATION
unsigned int CRC(unsigned char intSend[], int len)
{
int int_c = 0xFFFF;
int int_l;

int int_i=0, int_j=0;

for (int_i = 0; int_i < len; int_i++)
{
//intSend[int_i] = intSend[int_i] & 0x00FF;

int_c = int_c ^  intSend[int_i]  ;
for ( int_j = 0; int_j < 8; int_j++)
{
int_l = int_c & 0x0001;  // Mask of LSB
int_c = int_c >> 1;
int_c = int_c & 0x7FFF;  //0x7FFF
if (int_l == 1)
int_c = int_c ^ 0xA001;
}
}
//int_crc_byte_a = int_c & 0x00FF;
//int_crc_byte_b = (int_c >> 8) & 0x00FF;
return int_c;
}

No comments:

Post a Comment