📄 i2cintf.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 + -