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