📄 i2c.lst
字号:
C51 COMPILER V7.50 I2C 08/18/2008 13:49:42 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN ..\output\output_bin\output_fm\i2c.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\code\common\i2c.c LARGE OPTIMIZE(9,SIZE) BROWSE INCDIR(..\..\..\bsp\i
-nclude;..\..\code\ap_fm\src\include;..\..\code\global;..\..\code\include) DEFINE(CONFIG_ASIC,dynamic_load) DEBUG OBJECTE
-XTEND PRINT(..\output\output_bin\output_fm\i2c.lst) OBJECT(..\output\output_bin\output_fm\i2c.obj)
line level source
1 #include "api.h"
2 #include "i2c.h"
3
4 //#ifdef CONFIG_FPGA
5
6 //--------------------------------------------------------------------------
7 static void vI2C_Delay(void)
8 {
9 1 INT8U i;
10 1 for(i=10;i>0;i--);
11 1 }
12
13 //--------------------------------------------------------------------------
14 void vI2C_Start(void)
15 {
16 1 INT8U count;
17 1
18 1 api_vI2CPinSelect();
19 1
20 1 for (count = ERROR_COUNT;count > 0;count--)
21 1 {
22 2 IIC_DAT = 1;
23 2 vI2C_Delay();
24 2 IIC_CLK = 1;
25 2 vI2C_Delay();
26 2 IIC_DAT = 0;
27 2 vI2C_Delay();
28 2 IIC_CLK = 0;
29 2 vI2C_Delay();
30 2 if (!(IIC_DAT|IIC_CLK)) break;
31 2 }
32 1 }
33
34 //--------------------------------------------------------------------------
35 void vI2C_Stop(void)
36 {
37 1 INT8U count;
38 1
39 1 for (count = ERROR_COUNT;count > 0;count--)
40 1 {
41 2 IIC_DAT = 0;
42 2 vI2C_Delay();
43 2 IIC_CLK = 0;
44 2 vI2C_Delay();
45 2 IIC_CLK = 1;
46 2 vI2C_Delay();
47 2 IIC_DAT = 1;
48 2 vI2C_Delay();
49 2 if (IIC_DAT&IIC_CLK) break;
50 2 }
51 1
52 1 api_vI2CPinRecover();
53 1 }
C51 COMPILER V7.50 I2C 08/18/2008 13:49:42 PAGE 2
54
55 //--------------------------------------------------------------------------
56 INT8U u8I2C_ByteIn(INT8U isLast)
57 {
58 1 INT8U dt = 0x00;
59 1 INT8U i;
60 1
61 1 IIC_DAT = 1;
62 1
63 1 for ( i=0x80; i; i>>=1 ) {
64 2 IicBitIn();
65 2 vI2C_Delay();
66 2 if(IIC_DAT) dt |= i;
67 2 IIC_CLK = 0;
68 2 }
69 1
70 1 //send ACK
71 1 IIC_DAT = isLast;
72 1 IIC_CLK = 1;
73 1 vI2C_Delay();
74 1 IIC_CLK = 0;
75 1 vI2C_Delay();
76 1 IIC_DAT = 1;
77 1 vI2C_Delay();
78 1
79 1 return dt;
80 1 }
81
82 //--------------------------------------------------------------------------
83 BOOLEAN bI2C_ByteOut(INT8U dt)
84 {
85 1 INT8U count;
86 1
87 1 for (count = 0; count < 8; count ++, dt <<= 1) {
88 2 IicBitOut(dt & 0x80);
89 2 }
90 1
91 1 // Ack
92 1 IIC_DAT = 1;
93 1 vI2C_Delay();
94 1 IIC_CLK = 1;
95 1 vI2C_Delay();
96 1
97 1 for (count = ERROR_COUNT;count > 0;count--)
98 1 {
99 2 if (!IIC_DAT)
100 2 {
101 3 IIC_CLK = 0;
102 3 return TRUE;
103 3 }
104 2 }
105 1
106 1 IIC_CLK = 0;
107 1
108 1 api_vI2CPinRecover();
109 1
110 1 return FALSE;
111 1 }
112
113 //#endif
C51 COMPILER V7.50 I2C 08/18/2008 13:49:42 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 167 ----
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 + -