📄 crc.lst
字号:
C51 COMPILER V8.02 CRC 10/05/2006 09:38:17 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE CRC
OBJECT MODULE PLACED IN .\output\crc.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE crc.c OMF2 BROWSE MODDP2 DEBUG OBJECT(.\output\crc.obj)
line level source
1 #include "def.h"
2 #include"setting.h"
3 //extern void SendCh(U8);
4 //unsigned int code crc_ta[16]=
5 //{ /* CRC余式表 */
6 /* 0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
7 0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,
8 };*/
9
10 union
11 {
12 U16 iWord;
13 struct
14 {
15 U8 cHigh;
16 U8 cLow;
17 }iData;
18 }CrcTemp;
19
20 U8 count;
21
22
23 BOOL RxdCrc(void);
24 void TxdCrc( void );
25 void Crc( void);
26
27 void Crc(void)//2006-9-5:crc改为直接调用全局联合,而不再用指针传递了,因为......
28 {
29 1 // unsigned char da;
30 1 U8 i;
31 1 // CrcTemp.iWord = 0xffff;
32 1 CrcTemp.iWord = 0;
33 1 for( i=0; i<26; i++ )
34 1 {
35 2 // da=CrcTemp.iData.cHigh >> 4; /* 暂存CRC的高四位 */
36 2
37 2 // CrcTemp.iWord <<= 4; /* CRC右移4位,相当于取CRC的低12位)*/
38 2
39 2 // CrcTemp.iWord ^= crc_ta[da^(Setting.cByte[i]/16)]; /* CRC的高4位和本字节的前半字节相加后
-查表计算CRC,
40 2
41 2 // 然后加上上一次CRC的余数 */
42 2 // da = CrcTemp.iData.cHigh >>4 ; /* 暂存CRC的高4位 */
43 2 // CrcTemp.iWord <<= 4; /* CRC右移4位, 相当于CRC的低12位) */
44 2 // CrcTemp.iWord ^= crc_ta[da^(Setting.cByte[i]&0x0f)]; /* CRC的高4位和本字节的后半字节相加
-后查表计算CRC,
45 2 // 然后再加上上一次CRC的余数 */
46 2 CrcTemp.iWord+=Setting.cByte[i];
47 2 }
48 1 // CrcTemp.iWord ^= 0xffff;
49 1
50 1 }
51
52 BOOL RxdCrc( void)
53 {
C51 COMPILER V8.02 CRC 10/05/2006 09:38:17 PAGE 2
54 1 //count = 22;
55 1 Crc();
56 1 if( (CrcTemp.iData.cHigh ==Setting.cByte[26])&&(CrcTemp.iData.cLow==Setting.cByte[27]) )
57 1 {
58 2 return TRUE;
59 2 }
60 1 else
61 1 {
62 2 return FALSE;
63 2 }
64 1 }
65
66 void TxdCrc(void)
67 {
68 1 //count = 22;
69 1
70 1 Crc();
71 1
72 1 Setting.cByte[26] = CrcTemp.iData.cHigh;
73 1 Setting.cByte[27] = CrcTemp.iData.cLow;
74 1 }
75
76
77
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 56 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -