시간낭비하게 해서 미안한데..
이게 A사의 메뉴얼인데..
CRC-8테이블만 가져왔엉.
UCHAR crc8(UCHAR *data_in, USHORT length)
{
UCHAR crc;
USHORT loop_count;
UCHAR bit_counter;
UCHAR data;
UCHAR feedback_bit;
crc = CRC8INIT; // CRC8INIT : 0x00
for (loop_count = 0; loop_count != length; loop_count++){
data = data_in[loop_count];
bit_counter = 8;
do{
feedback_bit = (crc ^ data) & 0x01;
if (feedback_bit == 0x01){
crc = crc ^ CRC8POLY; // CRC8POLY : 0x18
}
crc = (crc >> 1) & 0x7F;
if (feedback_bit == 0x01){
crc = crc | 0x80;
}
data = data >> 1;
bit_counter--;
}while (bit_counter > 0);
}
return crc;
}
f
이건 거기서 보내준 코드라는데 C아시는 분한테 여쭤보니까 이걸로는 뭐 알아보기 힘들다는데 참고될까봐 싸질러놈. ㅠ
시발 어려워 웕웕웕
저걸로 알기는 어려움;; CRC 생성 알고리즘이랑 CRC의 원리는 또 다른 이야기임