Skip to content

Commit 0118daa

Browse files
Merge pull request #6 from TimerOverflow/20210604
20210604
2 parents a29e9ff + 650f0c0 commit 0118daa

File tree

3 files changed

+114
-104
lines changed

3 files changed

+114
-104
lines changed

SysTypedef.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
/*********************************************************************************/
1010
/**Define**/
1111

12-
typedef unsigned char tU8;
13-
typedef signed char tS8;
12+
typedef unsigned char tU8;
13+
typedef signed char tS8;
1414

15-
typedef unsigned int tU16;
16-
typedef signed int tS16;
15+
typedef unsigned int tU16;
16+
typedef signed int tS16;
1717

18-
typedef unsigned long tU32;
19-
typedef signed long tS32;
18+
typedef unsigned long tU32;
19+
typedef signed long tS32;
2020

2121
/*********************************************************************************/
2222
/**Enum**/

crc16.c

Lines changed: 86 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -6,115 +6,119 @@
66
/*********************************************************************************/
77
#include "crc16.h"
88
/*********************************************************************************/
9-
#if(AVR_CRC16_REVISION_DATE != 20200907)
9+
#if(AVR_CRC16_REVISION_DATE != 20210604)
1010
#error wrong include file. (crc16.h)
1111
#endif
1212
/*********************************************************************************/
1313
/** Global variable **/
1414

1515

1616
/* CRC16 Table High byte */
17-
#if(__CRC16_TARGET_IAR_AVR__ == true)
17+
#if(__CRC16_TARGET_COMPILER__ == __CRC16_TARGET_IAR_AVR__)
1818
#include <ina90.h>
1919
const tU8 __flash CRC16Hi[] =
20+
#elif(__CRC16_TARGET_COMPILER__ == __CRC16_TARGET_MICROCHIP_STUDIO__)
21+
const tU8 __flash CRC16Hi[] =
2022
#else
2123
const tU8 CRC16Hi[] =
2224
#endif
2325
{
24-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
25-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
26-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
27-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
28-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
29-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
30-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
31-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
32-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
33-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
34-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
35-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
36-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
37-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
38-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
39-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
40-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
41-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
42-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
43-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
44-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
45-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
46-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
47-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
48-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
49-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
50-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
51-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
52-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
53-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
54-
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
55-
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
26+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
27+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
28+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
29+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
30+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
31+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
32+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
33+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
34+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
35+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
36+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
37+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
38+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
39+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
40+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
41+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
42+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
43+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
44+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
45+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
46+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
47+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
48+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
49+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
50+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
51+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
52+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
53+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
54+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
55+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
56+
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
57+
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
5658
};
5759

5860
/* CRC16 Table Low byte */
59-
#if(__CRC16_TARGET_IAR_AVR__ == true)
61+
#if(__CRC16_TARGET_COMPILER__ == __CRC16_TARGET_IAR_AVR__)
62+
const tU8 __flash CRC16Lo[] =
63+
#elif(__CRC16_TARGET_COMPILER__ == __CRC16_TARGET_MICROCHIP_STUDIO__)
6064
const tU8 __flash CRC16Lo[] =
6165
#else
6266
const tU8 CRC16Lo[] =
6367
#endif
6468
{
65-
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2,
66-
0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04,
67-
0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E,
68-
0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8,
69-
0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,
70-
0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
71-
0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6,
72-
0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10,
73-
0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32,
74-
0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,
75-
0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE,
76-
0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38,
77-
0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA,
78-
0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C,
79-
0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
80-
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0,
81-
0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62,
82-
0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,
83-
0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE,
84-
0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,
85-
0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA,
86-
0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C,
87-
0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76,
88-
0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,
89-
0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,
90-
0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54,
91-
0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E,
92-
0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98,
93-
0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A,
94-
0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
95-
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86,
96-
0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40
69+
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2,
70+
0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04,
71+
0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E,
72+
0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8,
73+
0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,
74+
0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
75+
0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6,
76+
0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10,
77+
0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32,
78+
0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,
79+
0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE,
80+
0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38,
81+
0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA,
82+
0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C,
83+
0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
84+
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0,
85+
0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62,
86+
0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,
87+
0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE,
88+
0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,
89+
0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA,
90+
0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C,
91+
0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76,
92+
0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,
93+
0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,
94+
0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54,
95+
0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E,
96+
0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98,
97+
0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A,
98+
0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
99+
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86,
100+
0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40
97101
};
98102
/*********************************************************************************/
99103
tU16 Crc16Check(tU8 *BufCurPos, tU8 *BufOffSet, tU8 *BufEnd, tU16 Length)
100104
{
101-
tU8 CRCHi, CRCLo;
102-
tU16 Index;
105+
tU8 CRCHi, CRCLo;
106+
tU16 Index;
103107

104-
CRCHi = 0xFF;
105-
CRCLo = 0xFF;
106-
while(Length--)
107-
{
108-
Index = CRCHi ^ *BufCurPos;
109-
CRCHi = CRCLo ^ CRC16Hi[Index];
110-
CRCLo = CRC16Lo[Index];
108+
CRCHi = 0xFF;
109+
CRCLo = 0xFF;
110+
while(Length--)
111+
{
112+
Index = CRCHi ^ *BufCurPos;
113+
CRCHi = CRCLo ^ CRC16Hi[Index];
114+
CRCLo = CRC16Lo[Index];
111115

112-
if(++BufCurPos > BufEnd)
113-
{
114-
BufCurPos = BufOffSet;
115-
}
116-
}
116+
if(++BufCurPos > BufEnd)
117+
{
118+
BufCurPos = BufOffSet;
119+
}
120+
}
117121

118-
return (tU16) (CRCHi << 8) + CRCLo;
122+
return (tU16) (CRCHi << 8) + CRCLo;
119123
}
120124
/*********************************************************************************/

crc16.h

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,43 @@
55
*/
66
/*********************************************************************************/
77
#ifndef __CRC16_H__
8-
#define __CRC16_H__
8+
#define __CRC16_H__
99
/*********************************************************************************/
1010
#include "SysTypedef.h"
1111
/*********************************************************************************/
12-
#define AVR_CRC16_REVISION_DATE 20200907
12+
#define AVR_CRC16_REVISION_DATE 20210604
1313
/*********************************************************************************/
1414
/** REVISION HISTORY **/
1515
/*
16-
2020. 09. 07. - __CRC16_TARGET_IAR_AVR__ 추가. AVR 타겟일 경우 crc테이블을 플래쉬 메모리에 할당.
17-
Jeong Hyun Gu
16+
2021. 06. 04. - __CRC16_TARGET_MICROCHIP_STUDIO__ 추가.
17+
Jeong Hyun Gu
1818
19-
2019. 10. 07. - 'SysTypedef.h' 적용.
20-
Jeong Hyun Gu
19+
2020. 09. 07. - __CRC16_TARGET_IAR_AVR__ 추가. AVR 타겟일 경우 crc테이블을 플래쉬 메모리에 할당.
20+
Jeong Hyun Gu
2121
22-
2018. 05. 02. - CRC16 테이블 변수 타입 변경.
23-
Jeong Hyun Gu
22+
2019. 10. 07. - 'SysTypedef.h' 적용.
23+
Jeong Hyun Gu
2424
25-
2016. 11. 08. - revision valid check 추가.
26-
Jeong Hyun Gu
25+
2018. 05. 02. - CRC16 테이블 변수 타입 변경.
26+
Jeong Hyun Gu
2727
28-
2016. 10. 28. - 초기버전.
29-
Jeong Hyun Gu
28+
2016. 11. 08. - revision valid check 추가.
29+
Jeong Hyun Gu
30+
31+
2016. 10. 28. - 초기버전.
32+
Jeong Hyun Gu
3033
*/
3134
/*********************************************************************************/
3235
/**Define**/
3336

34-
#define true 1
35-
#define false 0
36-
#define null 0
37+
#define true 1
38+
#define false 0
39+
#define null 0
3740

38-
#define __CRC16_TARGET_IAR_AVR__ true
41+
#define __CRC16_TARGET_UNKNOWN__ 0
42+
#define __CRC16_TARGET_IAR_AVR__ 1
43+
#define __CRC16_TARGET_MICROCHIP_STUDIO__ 2
44+
#define __CRC16_TARGET_COMPILER__ __CRC16_TARGET_IAR_AVR__
3945

4046
/*********************************************************************************/
4147
/**Enum**/

0 commit comments

Comments
 (0)