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

📄 i2cintf.lst

📁 Philips LPC932 I2C 接口源程序
💻 LST
字号:
C51 COMPILER V7.06   I2CINTF                                                               03/01/2005 13:39:02 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE I2CINTF
OBJECT MODULE PLACED IN I2CINTF.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE I2CINTF.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "i2cexprt.h"
   2          extern void PrintString(char *s);
   3          code char retryexp[] = "retry counter expired\n";
   4          code char bufempty[] = "buffer empty\n";
   5          code char nackdata[] = "no ack on data\n";
   6          code char nackaddr[] = "no ack on address\n";
   7          code char timedout[] = "time-out\n";
   8          code char unknowst[] = "unknown status\n";
   9          static I2C_MESSAGE *p_iicMsg[2];
  10          static I2C_TRANSFER iicTfr;
  11          static BYTE drvStatus;
  12          void I2C_Ready(BYTE status, BYTE nr) using 1
  13          {
  14   1          drvStatus = status;
  15   1      }
*** WARNING C280 IN LINE 12 OF I2CINTF.C: 'nr': unreferenced local variable
  16          static void StartTransfer(void)
  17          {
  18   1          WORD timeOut;
  19   1          BYTE retries = 0;
  20   1          do
  21   1          {
  22   2              drvStatus = I2C_BUSY;
  23   2              I2C_Transfer(&iicTfr);
  24   2              timeOut = 0;
  25   2              while (drvStatus == I2C_BUSY)
  26   2              {
  27   3                  if (++timeOut > 40000)
  28   3                  drvStatus = I2C_TIME_OUT;
  29   3              }
  30   2              if (retries == 6)
  31   2              {
  32   3                  PrintString(retryexp);
  33   3                  return;
  34   3              }
  35   2              else
  36   2                  retries++;
  37   2              switch (drvStatus)
  38   2              {
  39   3                  case I2C_OK: break;
  40   3                  case I2C_NO_DATA:
  41   3                      PrintString(bufempty); break;
  42   3                  case I2C_NACK_ON_DATA:
  43   3                      PrintString(nackdata); break;
  44   3                  case I2C_NACK_ON_ADDRESS:
  45   3                      PrintString(nackaddr); break;
  46   3                  case I2C_TIME_OUT:
  47   3                      PrintString(timedout); break;
  48   3                  default: PrintString(unknowst); break;
  49   3              }
  50   2          } while (drvStatus != I2C_OK);
  51   1          }
  52          void I2C_Write(I2C_MESSAGE *msg)
  53          {
  54   1          iicTfr.nrMessages = 1;
C51 COMPILER V7.06   I2CINTF                                                               03/01/2005 13:39:02 PAGE 2   

  55   1          iicTfr.p_message = p_iicMsg;
  56   1          p_iicMsg[0] = msg;
  57   1          StartTransfer();
  58   1      }
  59          void I2C_WriteRepWrite(I2C_MESSAGE *m1,I2C_MESSAGE *m2)
  60          {
  61   1          iicTfr.nrMessages = 2;
  62   1          iicTfr.p_message = p_iicMsg;
  63   1          p_iicMsg[0] = m1;
  64   1          p_iicMsg[1] = m2;
  65   1          StartTransfer();
  66   1      }
  67          void I2C_WriteRepRead(I2C_MESSAGE *m1, I2C_MESSAGE *m2)
  68          {
  69   1          iicTfr.nrMessages = 2;
  70   1          iicTfr.p_message = p_iicMsg;
  71   1          p_iicMsg[0] = m1;
  72   1          p_iicMsg[1] = m2;
  73   1          StartTransfer();
  74   1      }
  75          void I2C_Read(I2C_MESSAGE *msg)
  76          {
  77   1          iicTfr.nrMessages = 1;
  78   1          iicTfr.p_message = p_iicMsg;
  79   1          p_iicMsg[0] = msg;
  80   1          StartTransfer();
  81   1      }
  82          void I2C_ReadRepRead(I2C_MESSAGE *m1, I2C_MESSAGE *m2)
  83          {
  84   1          iicTfr.nrMessages = 2;
  85   1          iicTfr.p_message = p_iicMsg;
  86   1          p_iicMsg[0] = m1;
  87   1          p_iicMsg[1] = m2;
  88   1          StartTransfer();
  89   1      }
  90          void I2C_ReadRepWrite(I2C_MESSAGE *m1, I2C_MESSAGE *m2)
  91          {
  92   1          iicTfr.nrMessages = 2;
  93   1          iicTfr.p_message = p_iicMsg;
  94   1          p_iicMsg[0] = m1;
  95   1          p_iicMsg[1] = m2;
  96   1          StartTransfer();
  97   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    341    ----
   CONSTANT SIZE    =     98    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11      32
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -