SciFi (27.10.2013 21:32, просмотров: 293) ответил Adept на Всё, сделал, ну как же всё, блин через жопу (в общем описании теории расчёта CRC не ни слова об особенностях реализации CCITT-варианта)
Нафиг этот мазохизм? Есть и полутабличные методы, вот например: http://www.dattalo.com/technical/software/pic/crc_8bit.c
static uint8_t
crc8(const uint8_t data[8])
{
int i;
uint8_t crc = 0;
static const uint8_t r1[16] = {
0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83,
0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41,
};
static const uint8_t r2[16] = {
0x00, 0x9d, 0x23, 0xbe, 0x46, 0xdb, 0x65, 0xf8,
0x8c, 0x11, 0xaf, 0x32, 0xca, 0x57, 0xe9, 0x74
};
for (i = 0; i < 8; i++)
{
uint8_t t = data[i] ^ crc;
crc = (uint8_t)(r1[t & 0xF] ^ r2[t >> 4]);
}
return crc;
}
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้