This commit is contained in:
Gunnar Skjold
2024-03-19 11:31:14 +01:00
parent 2087c287bf
commit f68666bd4a
2 changed files with 18 additions and 15 deletions

View File

@@ -12,6 +12,6 @@
uint16_t crc16(const uint8_t* p, int len); uint16_t crc16(const uint8_t* p, int len);
uint16_t crc16_x25(const uint8_t* p, int len); uint16_t crc16_x25(const uint8_t* p, int len);
uint16_t crc16_ccit(const uint8_t* p, int len); uint16_t crc16_1021(const uint8_t* p, int len);
#endif #endif

View File

@@ -34,20 +34,23 @@ uint16_t crc16 (const uint8_t *p, int len) {
return crc; return crc;
} }
uint16_t crc16_ccit(const uint8_t *p, int len) uint16_t crc16_1021(const uint8_t *p, int len)
{ {
int crc; uint16_t crc = 0x0000;
char i; for(uint16_t i = 0; i < len; i++) {
crc = 0; uint16_t mask = 0x80;
while (len--) { while(mask > 0) {
uint8_t i; crc <<= 1;
crc = crc ^ (uint8_t) *p++ << 8; if (p[i] & mask) {
for (i = 0 ; i < 8 ; ++i) { crc |= 1;
if (crc & 0x8000) }
crc = crc << 1 ^ 0x1021; mask>>=1;
else if (crc & 0x10000) {
crc = crc << 1; crc &= 0xffff;
crc ^= 0x1021;
}
} }
} }
return (crc); return crc;
} }