26 lines
462 B
C++
26 lines
462 B
C++
#include "tinycrc.h"
|
|
|
|
/*
|
|
CRC8 (from https://devcoons.com/crc8/)
|
|
*/
|
|
|
|
uint8_t tinycrc_crc8(const uint8_t* data, uint16_t length)
|
|
{
|
|
char crc = 0x00;
|
|
char extract;
|
|
char sum;
|
|
for(int i=0;i<length;i++)
|
|
{
|
|
extract = *data;
|
|
for (char tempI = 8; tempI; tempI--)
|
|
{
|
|
sum = (crc ^ extract) & 0x01;
|
|
crc >>= 1;
|
|
if (sum)
|
|
crc ^= 0x8C;
|
|
extract >>= 1;
|
|
}
|
|
data++;
|
|
}
|
|
return crc;
|
|
} |