⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nrf905_reference_firmware.lst

📁 nRF905无线收发模块的应用
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -