📄 gm_rwreg.lst
字号:
C51 COMPILER V7.50 GM_RWREG 07/06/2006 10:40:57 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE GM_RWREG
OBJECT MODULE PLACED IN .\obj\Gm_rwreg.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Gm_rwreg.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\Gm_rwreg.lst) OBJECT(.\obj
-\Gm_rwreg.obj)
line level source
1 #include "board.h"
2 #include "debug.h"
3 #include "debugDef.h"
4 #include "misc.h"
5 #include "gm_rwreg.h"
6 #include "global.h"
7 #include "Power.h"
8
9 void gm_stop(void);
10
11 void gm_init(void)
12 {
13 1 //Set_gm_CSZ();
14 1 Set_gm_SCL();
15 1 Set_gm_SDA();
16 1 //Clr_gm_SDA();
17 1 }
18
19 Bool gm_start(GMBus_Direction direct)
20 {
21 1 DWORD count;
22 1 Clr_gm_SCL(); // SCL=0
23 1 count = 0;
24 1 //Clr_gm_SDA();
25 1 while(gm_SDAHi())
26 1 {
27 2 count++;
28 2 if (count>=1000000)
29 2 return FALSE;
30 2
31 2 }
32 1
33 1
34 1
35 1 if (direct) // Read
36 1 Set_gm_SDA(); //SDA=1
37 1 else
38 1 Clr_gm_SDA(); //SDA=0
39 1 Delay4us();
40 1 Delay4us();
41 1 Delay4us();
42 1 Delay4us();
43 1 Delay4us();
44 1 Delay4us();
45 1 Delay4us();
46 1 Delay4us();
47 1 Delay4us();
48 1 Delay4us();
49 1 Set_gm_SCL();
50 1 Delay4us();
51 1 Delay4us();
52 1 Delay4us();
53 1 Delay4us();
54 1 Delay4us();
C51 COMPILER V7.50 GM_RWREG 07/06/2006 10:40:57 PAGE 2
55 1 Delay4us();
56 1 Delay4us();
57 1 Delay4us();
58 1 Delay4us();
59 1 Delay4us();
60 1 Clr_gm_SCL();
61 1
62 1 return TRUE;
63 1 }
64
65 void gm_stop(void)
66 {
67 1 //printMsg("stop");
68 1 //Set_gm_CSZ();
69 1 Set_gm_SCL();
70 1 Set_gm_SDA();
71 1 }
72 Bool gm_sendByte(BYTE value)
73 {
74 1 Bool result;
75 1 BYTE i;
76 1
77 1
78 1 if (!gm_start(GM_WRITE))
79 1 {
80 2 #if DebugVersion
81 2 printMsg("Write err");
82 2 #endif
83 2
84 2 return FALSE;
85 2 }
86 1
87 1
88 1 for (i=0; i<8; i++)
89 1 {
90 2 (value&BIT7)?(Set_gm_SDA()):(Clr_gm_SDA());
91 2 Delay4us();
92 2 Delay4us();
93 2 Delay4us();
94 2 Delay4us();
95 2 Delay4us();
96 2 Delay4us();
97 2 Delay4us();
98 2 Delay4us();
99 2 Delay4us();
100 2 Delay4us();
101 2 Set_gm_SCL();
102 2 Delay4us();
103 2 Delay4us();
104 2 Delay4us();
105 2 Delay4us();
106 2 Delay4us();
107 2 Delay4us();
108 2 Delay4us();
109 2 Delay4us();
110 2 Delay4us();
111 2 Delay4us();
112 2 value<<=1;
113 2 Clr_gm_SCL();
114 2 }
115 1 Delay4us();
116 1 Delay4us();
C51 COMPILER V7.50 GM_RWREG 07/06/2006 10:40:57 PAGE 3
117 1 Delay4us();
118 1 Delay4us();
119 1 Delay4us();
120 1 Delay4us();
121 1 Delay4us();
122 1 Delay4us();
123 1 Delay4us();
124 1 Delay4us();
125 1 gm_stop();
126 1 return result;
127 1
128 1 }
129
130
131 BYTE gm_readByte(void)
132 {
133 1
134 1 BYTE i;
135 1 BYTE value;
136 1
137 1 value = 0x00;
138 1 if (!gm_start(GM_READ))
139 1 {
140 2 #if DebugVersion
141 2 printMsg("Read err");
142 2 #endif
143 2
144 2 return 0;
145 2 }
146 1
147 1
148 1 for (i=0; i<8; i++)
149 1 {
150 2 value<<=1;
151 2 Set_gm_SDA();
152 2 ForceDelay1ms(1);
153 2 Set_gm_SCL();
154 2 ForceDelay1ms(1);
155 2 if (gm_SDAHi())
156 2 value|=BIT0;
157 2 Clr_gm_SCL();
158 2 }
159 1 ForceDelay1ms(1);
160 1 gm_stop();
161 1 return value;
162 1
163 1 }
164
165 void readStatusHandler(void)
166 {
167 1 BYTE status;
168 1 //BYTE err;
169 1
170 1 if (ReadStatusFlag)
171 1 {
172 2 //while(err--)
173 2 //{
174 2 status = gm_readByte();
175 2
176 2 Gm_Status = status;
177 2 //printData("the value of status is %d", status);
178 2
C51 COMPILER V7.50 GM_RWREG 07/06/2006 10:40:57 PAGE 4
179 2 Clr_ReadStatusFlag();
180 2 //}
181 2
182 2
183 2 if ((Gm_Status&0xc0) == 0xc0)
184 2 {
185 3 //Set_DoPowerHandlerFlag();
186 3 //Set_InitShutdownCountFlag();
187 3 #if DebugVersion
188 3 printMsg("init power off counter");
189 3 #endif
190 3 if (DoPowerOnFlag)
191 3 {
192 4 cmd_Power_Handler = POWER_ON_SYSTEM;
193 4 Clr_DoPowerOnFlag();
194 4 }
195 3 else
196 3 cmd_Power_Handler = INIT_POWER_OFF_COUNT;
197 3 }
198 2 else if ((Gm_Status&0xa0) == 0xa0)
199 2 {
200 3 #if DebugVersion
201 3 printMsg("cancel power off counter");
202 3 #endif
203 3 //Set_DoPowerHandlerFlag();
204 3 //Set_CancelShutdownCountFlag();
205 3 cmd_Power_Handler = CANCEL_POWER_OFF_COUNT;
206 3 }
207 2 else if(Gm_Status&0x08)
208 2 {
209 3 Set_DoProtectionHandlerFlag();
210 3 Pwd_Key_Count = 0;
211 3 #if DebugVersion
212 3 printMsg("Check Passwords");
213 3 #endif
214 3 }
215 2 }
216 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 467 ----
CONSTANT SIZE = 83 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
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 + -