IDT CPS-1848 User Manual page 174

Central packet switch
Table of Contents

Advertisement

7. I2C Interface > Temporary Master Mode
remainder = 0;
memset(crc, 0, sizeof(crc));
for (b=0; b < numBytes; b++) {
byte = data[b];
bit_Pos_Mask = 0x80;
for (bit_Pos = 0; bit_Pos < 8; bit_Pos++) {
carry = crc[15];
if (bit_Pos_Mask & byte)
serial_data = 1;
else
serial_data = 0;
for (i=15; i>=0; i--) {
if (i == 15) {
crc[i] = carry ^ crc[i-1];
} else if (i == 2) {
crc[i] = carry ^ crc[i-1];
} else if (i == 0) {
crc[i] = carry ^ serial_data;
} else {
crc[i] = crc[i-1];
}
}
bit_Pos_Mask >>= 1;
}
}
for (i=15; i>=0; i--) {
remainder |= (crc[i] << i);
}
return (remainder);
}
CPS-1848 User Manual
Formal Status
Integrated Device Technology
174
This document is confidential and is subject to an NDA.
June 2, 2014

Advertisement

Table of Contents
loading

Table of Contents