// 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