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_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

View File

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