25 namespace crc16modbus_nibblem {
32 static const crc_t crc_table[16] = {
33 0x0000, 0xcc01, 0xd801, 0x1400, 0xf001, 0x3c00, 0x2800, 0xe401,
34 0xa001, 0x6c00, 0x7800, 0xb401, 0x5000, 0x9c01, 0x8801, 0x4400
44 for (i = 1; i < data_len; i++) {
46 ret = (ret << 1) | (data & 0x01);
52 crc_t crc_update(
crc_t crc,
const void *data,
size_t data_len)
54 const unsigned char *d = (
const unsigned char *)data;
59 crc = crc_table[tbl_idx & 0x0f] ^ (crc >> 4);
60 tbl_idx = crc ^ (*d >> 4);
61 crc = crc_table[tbl_idx & 0x0f] ^ (crc >> 4);
uint16_t crc_t
The type of the CRC values.
Functions and types for CRC checks.
uint16_t crc_t
The type of the CRC values.