📄 t905.lst
字号:
220 1 SpiWrite(WTP); // Write payload command
221 1 for (i=0;i<SEND_LEN_RF;i++)
222 1 {
223 2 SpiWrite(Rs232RxBuf[i]);// Write 32 bytes Tx data
224 2 }
225 1 CSN=1; // Spi disable
226 1 Delay(1);
227 1 CSN=0; // Spi enable for write a spi command
228 1 SpiWrite(WTA); // Write address command
229 1 for (i=0;i<4;i++) // Write 4 bytes address
230 1 {
231 2 SpiWrite(RxTxConf.buf[i+5]);
232 2 }
233 1 CSN=1; // Spi disable
234 1 TRX_CE=1; // Set TRX_CE high,start Tx data transmission
235 1 Delay(1); // while (DR!=1);
236 1 TRX_CE=0; // Set TRX_CE low
237 1 }
238
239 /*
240 void TxPacket_special(void)
241 {
C51 COMPILER V7.01 T905 08/01/2006 10:05:32 PAGE 5
242 uchar i;
243 //Config905();
244 CSN=0; // Spi enable for write a spi command
245 SpiWrite(WTP); // Write payload command
246 for (i=0;i<7;i++)
247 {
248 SpiWrite(Rs232RxBuf[rs232rxpoint_tail]); // Write 32 bytes Tx data
249 rs232rxpoint_tail++;
250 if( rs232rxpoint_tail>RXBUFF_LEN)rs232rxpoint_tail=0;
251 }
252
253 SpiWrite(0);
254 SpiWrite(0);
255 SpiWrite(0);
256 SpiWrite(0);
257 SpiWrite(0);
258
259 CSN=1; // Spi disable
260 Delay(1);
261 CSN=0; // Spi enable for write a spi command
262 SpiWrite(WTA); // Write address command
263 for (i=0;i<4;i++) // Write 4 bytes address
264 {
265 SpiWrite(RxTxConf.buf[i+5]);
266 }
267 CSN=1; // Spi disable
268 TRX_CE=1; // Set TRX_CE high,start Tx data transmission
269 Delay(1); // while (DR!=1);
270 TRX_CE=0; // Set TRX_CE low
271 }
272 */
273
274 /*******************************************************************************************/
275 //function RxPacket();
276 /*******************************************************************************************/
277 void RxPacket(void)
278 {
279 1 uchar i;
280 1 TRX_CE=0; // Set nRF905 in standby mode
281 1 CSN=0; // Spi enable for write a spi command
282 1 SpiWrite(RRP); // Read payload command
283 1 for(i=0;i<RECEIVE_LEN_RF;i++)
284 1 {
285 2 Rs232TxBuf[i]=SpiRead(); // Read data and save to buffer
286 2 }
287 1 rs232_send_flag=1;
288 1
289 1 CSN=1; // Disable spi
290 1 while(DR||AM);
291 1 TRX_CE=1;
292 1 }
293
294 /*******************************************************************************************/
295 //function SetTxMode();
296 /*******************************************************************************************/
297 void SetTxMode(void)
298 {
299 1 TX_EN=1;
300 1 TRX_CE=0;
301 1 Delay(1); // delay for mode change(>=650us)
302 1 }
303 /*******************************************************************************************/
C51 COMPILER V7.01 T905 08/01/2006 10:05:32 PAGE 6
304 //function SetRxMode();
305 /*******************************************************************************************/
306 void SetRxMode(void)
307 {
308 1 TX_EN=0;
309 1 TRX_CE=1;
310 1 Delay(1); // delay for mode change(>=650us)
311 1 }
312 /*******************************************************************************************/
313 //Functon Scankey();
314 /*******************************************************************************************/
315 /*
316 void Scankey()
317 {
318 uchar Temp,xx;
319 P0=0xff;
320 Temp=P0&0x0f; // Read key value from port P0
321 if (Temp!=0x0f)
322 { Delay(10);
323 Temp=P0&0x0f; // Read key value from port P0
324 if (Temp!=0x0f)
325 {
326 xx=Temp;
327 Temp=Temp<<4; // Left shift 4 bits
328 TxBuf[0]=Temp; // Turn On the LED
329 P0=Temp; // Save to Tx buffer[0]
330 SetTxMode(); // Set Tx Mode
331 TxPacket(); // Transmit Tx buffer data
332 TxData (xx);
333 Delay(500); // Delay for LED light
334 P0=0xff; // Close LED display
335 SetRxMode(); // Set Rx Mode
336 while((P0&0x0f)!=0x0f);
337 }
338 }
339 }
340 */
341
342 void rf_send_pakage(void)
343 {
344 1 if(rf_send_flag==1)
345 1 {
346 2 rf_send_flag=0;
347 2 EA=0;
348 2 SetTxMode(); // Set Tx Mode
349 2 TxPacket(); // Transmit Tx buffer data
350 2 SetRxMode(); // Set Rx Mode
351 2 EA=1;
352 2 return;
353 2 }
354 1 }
355
356 /*******************************************************************************************/
357 //Function TxData ();
358 /*******************************************************************************************/
359 void rs232_tx_pakage(void)
360 {
361 1 uchar i;
362 1 if( rs232_send_flag==1)
363 1 {
364 2 rs232_send_flag=0;
365 2 TI=0;
C51 COMPILER V7.01 T905 08/01/2006 10:05:32 PAGE 7
366 2 for (i=0;i<RECEIVE_LEN_RF;i++)
367 2 {
368 3 SBUF=Rs232TxBuf[i];
369 3 while(!TI);
370 3 TI=0;
371 3 }
372 2 }
373 1 }
374
375 /*******************************************************************************************/
376 void rs232_interrupt(void) interrupt 4 using 1
377 {
378 1 int j;
379 1 uchar flag,i,sum;
380 1
381 1 if(RI)
382 1 {
383 2 RI=0;
384 2 if(rf_send_flag==0)
385 2 {
386 3 Rs232RxBuf[0]=SBUF;sum=1;
387 3 for(i=1;i<SEND_LEN_RF;i++)
388 3 {
389 4 sum++;
390 4 flag=1;
391 4 j=0;
392 4
393 4 while(flag==1)
394 4 {
395 5 j++;
396 5 if(RI!=0) flag=0;
397 5 if(j>=5000) flag=0;
398 5 }
399 4 if(j>5000)
400 4 {
401 5 rf_send_flag=0;sum=0;
402 5 return;
403 5 }
404 4
405 4 RI=0;
406 4 Rs232RxBuf[i]=SBUF;
407 4 }
408 3 if(sum==SEND_LEN_RF) rf_send_flag=1;
409 3 }
410 2 }
411 1 }
412
413 void init_rxbuf(void)
414 {
415 1 uchar i;
416 1 rf_send_flag=0;rs232_send_flag=0;
417 1
418 1 // rs232_send_sum=0;
419 1 for( i=0;i< TXBUFF_LEN;i++)
420 1 {
421 2 Rs232TxBuf[i]=0;
422 2 }
423 1
424 1 for( i=0;i< RXBUFF_LEN;i++)
425 1 {
426 2 Rs232RxBuf[i]=0;
427 2 }
C51 COMPILER V7.01 T905 08/01/2006 10:05:32 PAGE 8
428 1 }
429
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 507 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
IDATA SIZE = 42 ----
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 + -