📄 nrf905_reference_firmware.lst
字号:
366 1 {
367 2 rx_data_buf[i]=read_spi_one_byte();
368 2 i++;
369 2 }
370 1 CSN=1;
371 1 }
372 /**********************************************************************************/
373
374 /***********************************************************************************
375 * function: fast_channel_config()
376 * use:
377 * input parameter:
378 * output parameter:
379 ***********************************************************************************/
380 /*
381 void fast_channel_config(unsigned char freq_value,unsigned char ch_no_value)
382 {
383 CSN=0;
384 freq_value|=0x80;
385 write_spi_one_byte(freq_value);
386 write_spi_one_byte(ch_no_value);
387 CSN=1;
388 }
389 /**********************************************************************************/
390
391 /***********************************************************************************
392 * function: send_rx_data_to_pc()
393 * use: send the received data to pc used UART
394 * input parameter: none
395 * output parameter: none
396 ***********************************************************************************/
397
398 void send_rx_data_to_pc(void)
399 {
400 1 unsigned char i;
401 1 i=0;
402 1 for(i=0;i<32;i++) //send ASCII char'Comait CRM401XNC' use UART
403 1 {
404 2 TI=0;
405 2 SBUF=rx_data_buf[i];
406 2 while(TI==0);
407 2 }
408 1 }
409 /**********************************************************************************/
410
411 /**********************************************************************************
412 * function: delay_ms()
413 * use: delay x ms(Max 65535ms,only for at89c2051 MCU)
414 * input parameter: unsigned int delay_counter
415 * output parameter: none
416 ***********************************************************************************/
417 void delay_ms(unsigned int delay_counter)
418 {
419 1 unsigned int i;
420 1 while(delay_counter--)
421 1 {
422 2 i=250;
423 2 while(i--);
424 2 }
425 1 }
C51 COMPILER V8.02 NRF905_REFERENCE_FIRMWARE 05/12/2006 12:50:33 PAGE 8
426 /**********************************************************************************/
427
428 /***********************************************************************************
429 * function: send_rf_data()
430 * use: doing the arrange work for transimit mode
431 * input parameter: none
432 * output parameter: none
433 ***********************************************************************************/
434
435 void send_rf_data(void)
436 {
437 1 unsigned char i;
438 1 write_tx_address(4);
439 1 write_tx_payload(30);
440 1 TRX_CE=1;
441 1 i=2; //delay 20us
442 1 while(i--);
443 1 TRX_CE=0;
444 1 delay_ms(1);
445 1 }
446 /**********************************************************************************/
447
448 /***********************************************************************************
449 * function: transmit_mode()
450 * use: doing the arrange work for transimit mode
451 * input parameter: none
452 * output parameter: none
453 ***********************************************************************************/
454
455 void transmit_mode(void)
456 {
457 1 TXEN=1; //Change the RF to the transmit mode
458 1 while(STOP_SW==1)
459 1 { LED2=0;
460 2 LED2=1;
461 2
462 2 LED1=0;//
463 2
464 2 send_rf_data(); //Do if start_send_data button was pressed
465 2 tx_data_buf[0]++;
466 2 if(tx_data_buf[0]==0x5b)
467 2 {
468 3 tx_data_buf[0]=0x41;
469 3 }
470 2 delay_ms(70);
471 2 LED1=1;//
472 2 delay_ms(80);
473 2 }
474 1 task_switch=2; //Change the status toggle to the receive mode
475 1 }
476 /**********************************************************************************/
477
478 /***********************************************************************************
479 * function: receive_mode()
480 * use: doing the arrange work for receive mode
481 * input parameter: none
482 * output parameter: none
483 ***********************************************************************************/
484
485 void receive_mode(void)
486 {
487 1 TXEN=0; //Change the RF to the receive mode
C51 COMPILER V8.02 NRF905_REFERENCE_FIRMWARE 05/12/2006 12:50:33 PAGE 9
488 1 TRX_CE=1;
489 1 LED1=0;
490 1 delay_ms(1);
491 1 while(START_SW==1)
492 1 {
493 2 if(DR==1)
494 2 {
495 3 LED1=1;
496 3 read_rx_payload(32);
497 3 send_rx_data_to_pc();
498 3 delay_ms(55);
499 3 LED1=0;
500 3 }
501 2 }
502 1 TRX_CE=0;
503 1 task_switch=1; //Change the status toggle to transmit mode
504 1 }
505 /**********************************************************************************/
506
507 /***********************************************************************************
508 * function: main()
509 * use: blend all subroutines to do all work
510 * input parameter: none
511 * output parameter: none
512 ***********************************************************************************/
513 void main(void)
514 {
515 1 system_init();
516 1 task_switch=2; //send
517 1
518 1 while (1)
519 1 {
520 2 switch (task_switch)
521 2 {
522 3 case 0:
523 3 break;
524 3 case 1:
525 3
526 3 transmit_mode(); //The test board working in the transmit mode
527 3 // Delay100ms(5);
528 3 // LED2=!LED2;
529 3 break;
530 3 case 2:
531 3 receive_mode(); //The test board working in the receive mode
532 3 break;
533 3 default:
534 3 break;
535 3 }
536 2 }
537 1 }
538 /************************************* THE END **************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 529 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 50 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V8.02 NRF905_REFERENCE_FIRMWARE 05/12/2006 12:50:33 PAGE 10
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -