Kto prvý? Keď je to napísané spolu, je to asi vyditeľnejšie, ale ja som mal tú funkciu v inom súbore...
Kód: Vybrať všetko
//CRC8 setting
#define SCD30_CRC8POLYNOMIAL 0x31
#define SCD30_CRC8INITIALIZATION 0xFF
int Compute_CRC_with_initVal_def(int initVal, int poly, int *bytes_array, int bytes_count);
int main()
{
uint8_t tempArr2[2];
tempArr2[0] = 0xBE;
tempArr2[1] = 0xEF;
uint8_t crc = Compute_CRC_with_initVal_def(SCD30_CRC8INITIALIZATION, SCD30_CRC8POLYNOMIAL, (int*)tempArr2, 2);
}
int Compute_CRC_with_initVal_def(int initVal, int poly, int *bytes_array, int bytes_count)
{
int i, j;
int c;
int CRC = initVal;
for (j = 0; j < bytes_count; j++)
{
c = bytes_array[j];
CRC ^= c;
for (i = 0; i < 8; i++)
if ((CRC & 0x80) != 0) CRC = (CRC << 1) ^ poly;
else CRC <<= 1;
CRC &= 0xff;
}
return CRC;
}