crc.c


1
/*
2
 * crc.c
3
 *
4
 * Created: 17.11.2016 22:30:32
5
 *  Author: Bone
6
 */ 
7
8
#include "crc.h"
9
10
11
12
13
14
void InitCRC(void) {
15
  crc16 = 0xffff;
16
}
17
18
19
20
21
void CalcCRC(unsigned char data) {
22
unsigned char bitCount;
23
unsigned char PolynomFlag;
24
for (bitCount = 0; bitCount <8; bitCount++) {
25
    PolynomFlag = (crc16 &0x8000) != 0;
26
    crc16 <<= 1;
27
if (data &0x80) {
28
      crc16 |= 1;
29
    }
30
    data <<= 1;
31
if (PolynomFlag)
32
    crc16 ^= CRC16_POLYNOM;
33
  }
34
}