📄 crc8.lst
字号:
C51 COMPILER V7.20 CRC8 06/05/2008 13:05:35 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE CRC8
OBJECT MODULE PLACED IN CRC8.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CRC8.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REG52.H>
2 #define uchar unsigned char
3
4 #define CMC 0x8c //crc8_multinomial_code
5 #define LENGTH 24 //LENGTH = 24
6 extern uchar CMDIN[LENGTH]; //Command in length=24 数据(命令) 接收 缓冲区
7
8 //extern uchar crc8(uchar *ptr, uchar len); //crc8校验
9 //uchar crc_test_data[7]={0x28,0x6d,0x00,0x85,0x00,0x00,0x00}; //if:test_data OK! result=0xCF;
10 /**********************************************************************
11 ** 函数名称: crc8()
12 ** 功能描述: 数组的CRC校验
13 ** 输 入: *ptr:数组首地址
14 len :数组的长度
15 ** 输 出: crc校验结果
16 ** 全局变量: CMC:crc多项因子
17 ** 调用模块: 无
18 ***********************************************************************/
19 uchar crc8(uchar *ptr, uchar len) // crc8_multinomial=x(8)+x(5)+x(4)+1; 00110001->10001100=0x8c
20 {
21 1 uchar i;
22 1 uchar crc=0;
23 1 while(len--!=0)
24 1 {
25 2 for(i=0x01;i!=0;i <<= 1)
26 2 {
27 3 if((crc&0x01) != 0) {crc >>= 1; crc ^= CMC;}
28 3 else crc >>= 1;
29 3 if((*ptr&i) != 0) crc ^= CMC;
30 3 }
31 2 ptr++;
32 2 }
33 1 return(crc);
34 1 }
35
36 /**********************************************************************
37 ** 函数名称: crc8_test()
38 ** 功能描述: 数组的CRC校验是否通过测试
39 ** 输 入: *ptr:数组首地址
40 len :数组的长度
41 ** 输 出: crc校验通过结果 (0=通过)
42 ** 全局变量: 无
43 ** 调用模块: crc8
44 ***********************************************************************/
45 bit crc8_test(uchar *ptr, uchar len)
46 {
47 1 uchar Result_crc8;
48 1 Result_crc8=crc8(ptr,(len-1)); //Result_crc8==0,crc8 pass
49 1 if(Result_crc8==0) return 0; //0,crc8 pass
50 1 else return 1;
51 1 }
52
53
54
55
C51 COMPILER V7.20 CRC8 06/05/2008 13:05:35 PAGE 2
56
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 67 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -