?? i2c.lst
字號:
*** ERROR C202 IN LINE 136 OF I2C.C: 'I2C_SCL': undefined identifier
137 1 _nop_();
138 1 _nop_();
139 1 _nop_();
140 1 ErrorBit = I2C_SDA;
*** ERROR C202 IN LINE 140 OF I2C.C: 'I2C_SDA': undefined identifier
141 1 I2C_SCL = 0;
*** ERROR C202 IN LINE 141 OF I2C.C: 'I2C_SCL': undefined identifier
142 1 _nop_();
143 1 _nop_();
144 1 }
145 /***************************************
146 *函數名稱: void Write_I2c(uchar date)
147 *功能描述: 寫I2C
148 *輸入: 待送數據,高字節先送
149 *輸出: 無
150 *全局變量: I2C_SCL,I2C_SDA
151 *調用模塊: 無
152
153 ****************************************/
154 void Write_I2c(uchar date)
155 {
156 1 uchar i;
157 1 for(i = 0; i < 8; i++)
158 1 {
159 2 I2C_SDA = date & 0x80; //送數據到數據線上
*** ERROR C202 IN LINE 159 OF I2C.C: 'I2C_SDA': undefined identifier
160 2 date <<= 1;
161 2 _nop_();
C51 COMPILER V8.02 I2C 07/26/2008 08:49:37 PAGE 4
162 2 I2C_SCL = 1; //置時鐘信號為高電平,使數據有效
*** ERROR C202 IN LINE 162 OF I2C.C: 'I2C_SCL': undefined identifier
163 2 _nop_();
164 2 _nop_();
165 2 _nop_();
166 2 _nop_();
167 2 _nop_();
168 2 I2C_SCL = 0;
*** ERROR C202 IN LINE 168 OF I2C.C: 'I2C_SCL': undefined identifier
169 2 _nop_();
170 2 _nop_();
171 2
172 2 }
173 1 }
174 /***************************************
175 *函數名稱: uchar Read_I2c(void)
176 *功能描述: 讀I2C
177 *輸入: 無
178 *輸出: 返回一個字節的數據,高字節在前
179 *全局變量: I2C_SCL,I2C_SDA
180 *調用模塊: 無
181
182 ****************************************/
183 uchar Read_I2c(void)
184 {
185 1 uchar i;
186 1 uchar byte = 0;
187 1 for(i = 0; i < 8; i++)
188 1 {
189 2 I2C_SCL = 0; //置時鐘為低電平,準備接受數據
*** ERROR C202 IN LINE 189 OF I2C.C: 'I2C_SCL': undefined identifier
190 2 _nop_();
191 2 _nop_();
192 2 _nop_();
193 2 _nop_();
194 2 _nop_();
195 2 I2C_SCL = 1; //置時鐘為高電平,使數據線數據有效
*** ERROR C202 IN LINE 195 OF I2C.C: 'I2C_SCL': undefined identifier
196 2 _nop_();
197 2 _nop_();
198 2 byte <<= 1;
199 2 byte |= I2C_SDA;
*** ERROR C202 IN LINE 199 OF I2C.C: 'I2C_SDA': undefined identifier
200 2 _nop_();
201 2 _nop_();
202 2 I2C_SCL = 0;
*** ERROR C202 IN LINE 202 OF I2C.C: 'I2C_SCL': undefined identifier
203 2 }
204 1 return(byte);
205 1 }
206 /***************************************
207 *函數名稱: void DelayMs(uchar time)
208 *功能描述: 延時
209 *輸入: 延時時間
210 *輸出: 無
211 *全局變量: 無
212 *調用模塊: 無
213
214 ****************************************/
215 void DelayMs(uchar time)
216 {
217 1 uchar i;
C51 COMPILER V8.02 I2C 07/26/2008 08:49:37 PAGE 5
218 1 do
219 1 {
220 2 for(i = 0; i < 125 ; i++); //*延時 8us x 125 = 1ms
221 2 }
222 1 while (time--);
223 1
224 1 }
225 /***************************************
226 *函數名稱: void Write_Date(uchar StartAddress,uchar *date,uchar bytes)
227 *功能描述: 寫數據
228 *輸入: 數據開始地址,保存數據指針,數據字節數
229 *輸出: 無
230 *全局變量: 無
231 *調用模塊: Start(),Write_I2c(),Stop(),TestAck()
232 *注意事項: 調用之前,需要定義一個數組,用來存待發送的數據
233 ****************************************/
234 void Write_Date(int StartAddress,uchar *date,uchar bytes)
235 {
236 1 uchar i = 0;
237 1 Start();
238 1 Write_I2c(WR24C02);
239 1 TestAck();
240 1 Write_I2c(StartAddress);
241 1 TestAck();
242 1 for(i = 0;i < bytes; i++)
243 1 {
244 2 Write_I2c(*date);
245 2 TestAck();
246 2 date++;
247 2 }
248 1 Stop();
249 1 DelayMs(20);
250 1 }
251 /***************************************
252 *函數名稱: void Read_Date(uchar StartAddress,uchar *date,uchar bytes)
253 *功能描述: 讀數據
254 *輸入: 數據開始地址,讀取數據指針,數據字節數
255 *輸出: 無
256 *全局變量: 無
257 *調用模塊: Start(),Write_I2c(),Read_I2c(),Ack(),NoAck(),Stop(),TestAck()
258 *注意事項: 調用之前,需要定義一個數組,用來存讀取的數據
259 ****************************************/
260 void Read_Date(int StartAddress,uchar *date,uchar bytes)
261 {
262 1 uchar i;
263 1 Start();
264 1 Write_I2c(WR24C02);
265 1 TestAck();
266 1 Write_I2c(StartAddress);
267 1 TestAck();
268 1 Write_I2c(RD24C02);
269 1 TestAck();
270 1 for (i = 0; i < bytes; i++)
271 1 {
272 2 *date = Read_I2c();
273 2 Ack();
274 2 date++;
275 2 }
276 1 NoAck();
277 1 Stop();
278 1 DelayMs(10);
279 1 }
C51 COMPILER V8.02 I2C 07/26/2008 08:49:37 PAGE 6
C51 COMPILATION COMPLETE. 0 WARNING(S), 24 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -