?? 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 + -