⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disk2.lst

📁 用于Slave I2C得读写,此代码针对特定得芯片,但对其他得芯片也有借鉴作用.
💻 LST
字号:
C51 COMPILER V7.02b   DISK2                                                                03/16/2006 13:52:41 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE DISK2
OBJECT MODULE PLACED IN .\output\disk2.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE disk2.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\output\disk2.lst) OBJECT(.\
                    -output\disk2.obj)

stmt level    source

   1          /*
   2          **********************************************************************************************
   3          * Project:      T8Lib
   4          * File:         crc.c
   5          * Contents: 
   6          *           The crc  c file 
   7          *
   8          * $Date: 10/13/05    Michal    T8R01LIB v0.1  initial
   9          * $Date: 11/29/05    Michal    T8R01LIB v0.2  test finish  both 51 and MCF5249
  10          * $Date: 11/30/05    Michal    T8R01LIB v0.3  make lib OK  on  MCF5249
  11          * $Date: 12/01/05    Michal    T8R01LIB v0.4  Add HW_IIC ,HW_SPI macro  
  12          * $Date: 12/02/05    Michal    T8R01LIB v0.5  Add  function below 
  13          *                 static void DoXX(BYTE* out ,BYTE* in,BYTE len,BOOL mode)
  14          *                 static BOOL DoComunication(BYTE* array, BYTE len,BOOL mode)
  15          *
  16          *                 BOOL  GetCustomIdWriteStatusCmd(); 
  17          *                 BOOL  GetCustomIdResponseCmd(); 
  18          *                 BOOL  ChallengeCustomIdCmd(BYTE * CId,BYTE len,BYTE Nvmoffset); 
  19          *                 BOOL  IsCustomIdResponseCmd(); 
  20          *                 BOOL WriteCustomIdCmd(BYTE * CId,BYTE len,BYTE Nvmoffset)  ;   
  21          *                 BOOL IsWriteCustomIdReadyCmd();         
  22          *                 BOOL IsWriteCustomIdNotReadyCmd();  
  23          *
  24          *                Moidfy some *Cmd Fuction and Reply() function
  25          * $Date: 12/05/05    Michal    T8R02LIB v0.1  Add errcode1 to identify T8 off i2c bus state 
  26          * $Date: 12/29/05 Michal T8R02LIB v0.2
  27                               Modify InitezT8(BOOL mode ) to BOOL  InitezT8Lib(BOOL ComMod,BYTE I2cSlvAdr,BOOL I2cIsHigh,B
             -YTE SpiCLkMod,WORD SpiRate,BYTE *key);
  28                                  void I2c_Init( ); void I2c_Sel( BYTE  SlvAdr, BOOL isHigh)  to void I2c_Init(BYTE 
             - SlvAdr, BOOL isHigh);
  29                                  void  Spi_Init();BOOL  Spi_ClkSel(BYTE mode, WORD rate);  To void  Spi_Init(BYTE m
             -ode, WORD rate);
  30                           Delete void SpiClkSelOpr(BYTE mode, WORD rate) ;
  31                                  void I2c_Sel( BYTE  SlvAdr, BOOL isHigh);  
  32                                  void SetXXKey(BYTE* key); 
  33          * $Date: 12/29/05 Michal T8R02LIB v0.5 test communiction at 400khz speed  is OK  
  34          * Copyright (c) 2005 Fameg, Inc. All rights reserved
  35          ***********************************************************************************************
  36          */
  37          
  38          #include "ezT8i.h"
  39          //-----------------------------------------------------------------------------
  40          // Calculate crc 
  41          // return: crc value
  42          //        
  43          //-----------------------------------------------------------------------------
  44          WORD uCal(BYTE *dat, BYTE len){
  45   1      
  46   1         data UNCRCWORD   c;
  47   1         data UNCRCWORD   r;
  48   1         data UNCRCBYTE   x;
  49   1         data UNCRCBYTE   d;
  50   1         int i;
  51   1      
C51 COMPILER V7.02b   DISK2                                                                03/16/2006 13:52:41 PAGE 2   

  52   1         c.wCrcVal = 0xffff;
  53   1         
  54   1         for( i = 0; i < len; i ++){
  55   2      
  56   2         //calculate one byte
  57   2             d.bCrcVal = *(dat + i);
  58   2      
  59   2             x.bCrc.d8 = c.wCrc.d9 ^ d.bCrc.d8 ;
  60   2             x.bCrc.d7 = c.wCrc.d10 ^ d.bCrc.d7 ;
  61   2             x.bCrc.d6 = c.wCrc.d11 ^ d.bCrc.d6 ;
  62   2             x.bCrc.d5 = c.wCrc.d12 ^ d.bCrc.d5 ;
  63   2             x.bCrc.d4 = c.wCrc.d13 ^ d.bCrc.d4 ;
  64   2             x.bCrc.d3 = c.wCrc.d14 ^ d.bCrc.d3 ;
  65   2             x.bCrc.d2 = c.wCrc.d15 ^ d.bCrc.d2 ;
  66   2             x.bCrc.d1 = c.wCrc.d16 ^ d.bCrc.d1 ;
  67   2      
  68   2             r.wCrc.d16 = c.wCrc.d8 ^ x.bCrc.d8 ^ x.bCrc.d7 ^ x.bCrc.d6 ^ x.bCrc.d5 ^ x.bCrc.d4 ^ x.bCrc.d3 ^ x.
             -bCrc.d2 ^ x.bCrc.d1 ;
  69   2             r.wCrc.d15 = c.wCrc.d7 ;
  70   2             r.wCrc.d14 = c.wCrc.d6 ;
  71   2             r.wCrc.d13 = c.wCrc.d5 ;
  72   2             r.wCrc.d12 = c.wCrc.d4 ;
  73   2             r.wCrc.d11 = c.wCrc.d3 ;
  74   2             
  75   2             r.wCrc.d10 = c.wCrc.d2 ^ x.bCrc.d1 ;
  76   2             r.wCrc.d9 = c.wCrc.d1 ^ x.bCrc.d2 ^ x.bCrc.d1 ;
  77   2             r.wCrc.d8 = x.bCrc.d3 ^ x.bCrc.d2 ;
  78   2             r.wCrc.d7 = x.bCrc.d4 ^ x.bCrc.d3 ;
  79   2             r.wCrc.d6 = x.bCrc.d5 ^ x.bCrc.d4 ;
  80   2             r.wCrc.d5 = x.bCrc.d6 ^ x.bCrc.d5 ;
  81   2             r.wCrc.d4 = x.bCrc.d7 ^ x.bCrc.d6 ;
  82   2             r.wCrc.d3 = x.bCrc.d8 ^ x.bCrc.d7 ;
  83   2             r.wCrc.d2 = x.bCrc.d7 ^ x.bCrc.d6 ^ x.bCrc.d5 ^ x.bCrc.d4 ^ x.bCrc.d3 ^ x.bCrc.d2 ^ x.bCrc.d1 ;
  84   2             r.wCrc.d1 = x.bCrc.d8 ^ x.bCrc.d7 ^ x.bCrc.d6 ^ x.bCrc.d5 ^ x.bCrc.d4 ^ x.bCrc.d3 ^ x.bCrc.d2 ^ x.b
             -Crc.d1 ;
  85   2      
  86   2             c.wCrcVal = r.wCrcVal;
  87   2         }
  88   1         
  89   1         c.wCrc.d16=~r.wCrc.d1;
  90   1         c.wCrc.d15=~r.wCrc.d2;
  91   1         c.wCrc.d14=~r.wCrc.d3;
  92   1         c.wCrc.d13=~r.wCrc.d4;
  93   1         c.wCrc.d12=~r.wCrc.d5;
  94   1         c.wCrc.d11=~r.wCrc.d6;
  95   1         c.wCrc.d10=~r.wCrc.d7;
  96   1         c.wCrc.d9=~r.wCrc.d8;
  97   1         c.wCrc.d8=~r.wCrc.d9;
  98   1         c.wCrc.d7=~r.wCrc.d10;
  99   1         c.wCrc.d6=~r.wCrc.d11;
 100   1         c.wCrc.d5=~r.wCrc.d12;
 101   1         c.wCrc.d4=~r.wCrc.d13;
 102   1         c.wCrc.d3=~r.wCrc.d14;
 103   1         c.wCrc.d2=~r.wCrc.d15;
 104   1         c.wCrc.d1=~r.wCrc.d16;
 105   1         
 106   1         return (c.wCrcVal);
 107   1      }
 108          
 109          
 110          /*main(){
 111           WORD retVal;
C51 COMPILER V7.02b   DISK2                                                                03/16/2006 13:52:41 PAGE 3   

 112             
 113           BYTE aa[]={0x87,0x7e ,0xae ,0xa2 ,0x25 ,0x95 ,0x80 ,0x29 , 0x33,0x1c};  //33 1c  OK
 114           BYTE ff[]={0x52 ,0x03 ,0x08 ,0x04 ,0x17 ,0xc4 ,0x44 ,0x4a
 115                     ,0x48 ,0xa5 ,0x5d ,0x49 ,0xd7 ,0x61 ,0xe3 ,0xc6 
 116                     ,0xf8 ,0x5d ,0x3e ,0xf3 ,0x3b ,0x3b ,0xeb ,0x66 
 117                     ,0xd6 ,0x9c ,0x1a ,0xce ,0x5b ,0x76 ,0x50 ,0x82 ,0x3b};  //3f 7a
 118           
 119          
 120           BYTE cc[]= {0x00, 0x01 , 0xF6 , 0x7F , 0x00 , 0x00 , 0x02 , 0x00,0xaf,0x08}; //f5 10
 121           BYTE dd[]= {0x00, 0x80 , 0x6F , 0xFE , 0x00 , 0x00 , 0x40 , 0x00};
 122           BYTE ee[]= {0x00, 0x40 ,0xFF,0xBF};//, 0x00 , 0x00 , 0xFE , 0x6F , 0x80 , 0x00};
 123          
 124           BYTE bb[]={0x3a,0x43,0xbc ,0xa4 ,0x4f ,0xaf ,0xf3 ,0xba,0xc6,0xc8}; //c2 58
 125          
 126          
 127          // InitCRC();
 128           while(1)
 129           {  
 130            retVal=0;
 131            retVal=uCalCRC(bb,sizeof(bb)-2);
 132            retVal=uCalCRC(bb,sizeof(bb));
 133          
 134            retVal=uCalCRC(aa,8);
 135            retVal=uCalCRC(aa,10);
 136          
 137            retVal=uCalCRC(ff,sizeof(ff)-2);
 138            retVal=uCalCRC(ff,sizeof(ff));
 139          
 140            retVal=uCalCRC(cc,8);
 141            retVal=uCalCRC(cc,10);
 142          
 143            retVal=uCalCRC(ee,2);
 144            retVal=uCalCRC(ee,4);
 145           }
 146          }*/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1789    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       6
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   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 + -