ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
1 мая
457595 Топик полностью
SciFi (27.10.2013 21:32, просмотров: 273) ответил 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; }
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้