|
6 | 6 | /*********************************************************************************/ |
7 | 7 | #include "crc16.h" |
8 | 8 | /*********************************************************************************/ |
9 | | -#if(AVR_CRC16_REVISION_DATE != 20190905) |
| 9 | +#if(AVR_CRC16_REVISION_DATE != 20200907) |
10 | 10 | #error wrong include file. (crc16.h) |
11 | 11 | #endif |
12 | 12 | /*********************************************************************************/ |
13 | 13 | /** Global variable **/ |
14 | 14 |
|
15 | 15 |
|
16 | 16 | /* CRC16 Table High byte */ |
17 | | -const unsigned char CRC16Hi[] = |
| 17 | +#if(__CRC16_TARGET_IAR_AVR__ == true) |
| 18 | +#include <ina90.h> |
| 19 | +const tU8 __flash CRC16Hi[] = |
| 20 | +#else |
| 21 | +const tU8 CRC16Hi[] = |
| 22 | +#endif |
18 | 23 | { |
19 | 24 | 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, |
20 | 25 | 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, |
@@ -51,7 +56,11 @@ const unsigned char CRC16Hi[] = |
51 | 56 | }; |
52 | 57 |
|
53 | 58 | /* CRC16 Table Low byte */ |
54 | | -const unsigned char CRC16Lo[] = |
| 59 | +#if(__CRC16_TARGET_IAR_AVR__ == true) |
| 60 | +const tU8 __flash CRC16Lo[] = |
| 61 | +#else |
| 62 | +const tU8 CRC16Lo[] = |
| 63 | +#endif |
55 | 64 | { |
56 | 65 | 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, |
57 | 66 | 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, |
@@ -87,26 +96,25 @@ const unsigned char CRC16Lo[] = |
87 | 96 | 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 |
88 | 97 | }; |
89 | 98 | /*********************************************************************************/ |
90 | | -tU16 Crc16Check(char *BufCurPos, char *BufOffSet, char *BufEnd, tU16 Length) |
| 99 | +tU16 Crc16Check(tU8 *BufCurPos, tU8 *BufOffSet, tU8 *BufEnd, tU16 Length) |
91 | 100 | { |
92 | | - unsigned char CRCHi ; |
93 | | - unsigned char CRCLo ; |
94 | | - tU16 Index ; |
| 101 | + tU8 CRCHi, CRCLo; |
| 102 | + tU16 Index; |
95 | 103 |
|
96 | | - CRCHi = 0xFF ; |
97 | | - CRCLo = 0xFF ; |
98 | | - while(Length--) |
| 104 | + CRCHi = 0xFF; |
| 105 | + CRCLo = 0xFF; |
| 106 | + while(Length--) |
99 | 107 | { |
100 | | - Index = CRCHi ^ *BufCurPos++; |
| 108 | + Index = CRCHi ^ *BufCurPos; |
101 | 109 | CRCHi = CRCLo ^ CRC16Hi[Index]; |
102 | 110 | CRCLo = CRC16Lo[Index]; |
103 | 111 |
|
104 | | - if(BufCurPos > BufEnd) |
| 112 | + if(++BufCurPos > BufEnd) |
105 | 113 | { |
106 | 114 | BufCurPos = BufOffSet; |
107 | 115 | } |
108 | | - } |
| 116 | + } |
109 | 117 |
|
110 | | - return ((tU16) CRCHi << 8 | CRCLo); |
| 118 | + return (tU16) (CRCHi << 8) + CRCLo; |
111 | 119 | } |
112 | 120 | /*********************************************************************************/ |
0 commit comments