RfRxDataProcess.#1
上传用户:gxz1972
上传日期:2019-09-13
资源大小:323k
文件大小:20k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1. //-----------------------------------------------------------------------------
  2. // nRF2401RX.c
  3. //-----------------------------------------------------------------------------
  4. // Copyright 2007 Vson Technology, Inc.
  5. // http://www.usbmcu.com
  6. //
  7. // Program Description:
  8. //
  9. //
  10. //
  11. //
  12. //
  13. // MCU:            C8051F347
  14. // Tool chain:     Keil C51 7.50 / Keil EVAL C51
  15. //                 Silicon Laboratories IDE version 2.6
  16. // Command Line:   
  17. // Project Name:   TR1000
  18. //
  19. //
  20. // Release 1.0
  21. //    -All changes by Brian
  22. //    -24 JUL 2007
  23. //
  24. //
  25. #include "Include_H.h"
  26. #define _RF_PADLOAD_TEST_
  27. void nRF2401Configuration(void)
  28. {
  29.  unsigned char i;
  30.  /*==================================================*/
  31.  //config channeal 1
  32.  /*==================================================*/
  33.  //Configuration initial
  34.  //BS CONFIG_PORT,PWR_UP //
  35.  sbitRfCE1 = 0;
  36.  sbitRfCS1 = 0;//BC CONFIG_PORT,CS //CE==1
  37.  sbitRfCLK1 = 0;//BC CONFIG_PORT,CLK
  38.  sbitRfData1 = 0;//BC CONFIG_PORT,DIN
  39.  //Configuration initial end
  40.  sbitRfCS1 = 1;//BS CONFIG_PORT,CS //entry configuration mode ce==0
  41. //CALL Delay_5us //Tcs2data min. 5us
  42.  for (i = 0; i < 20; i++);    // Wait 5us 
  43.  Channel1Write8bitData(RF_CONFIG_DATA14);
  44.  Channel1Write8bitData(RF_CONFIG_DATA13);
  45.  Channel1Write8bitData(RF_CONFIG_DATA12);
  46.  Channel1Write8bitData(RF_CONFIG_DATA11);
  47.  Channel1Write8bitData(RF_CONFIG_DATA10);
  48.  Channel1Write8bitData(RF_CONFIG_DATA9);
  49.  Channel1Write8bitData(RF_CONFIG_DATA8);
  50.  Channel1Write8bitData(RF_CONFIG_DATA7);
  51.  Channel1Write8bitData(RF_CONFIG_DATA6);
  52.  Channel1Write8bitData(RF_CONFIG_DATA5);
  53.  Channel1Write8bitData(RF_CONFIG_DATA4);
  54.  Channel1Write8bitData(RF_CONFIG_DATA3);
  55.  Channel1Write8bitData(RF_CONFIG_DATA2);
  56.  Channel1Write8bitData(RF_CONFIG_DATA1);
  57.  Channel1Write8bitData(RF_CONFIG_DATA00);
  58.  
  59.  for (i = 0; i < 20; i++);    // Wait 5us
  60.  sbitRfCS1 = 0;  //BC CONFIG_PORT,CS //After finish configuration mode,Entry stanby mode
  61.  sbitRfData1 = 0; //BC CONFIG_PORT,DIN //Remain low
  62.  sbitRfCE1 = 1; //BS CONFIG_PORT,CE
  63.  for (i = 0; i < 200; i++);    // Wait 5us
  64.   
  65. /*==================================================*/
  66. //config channeal 2
  67. /*==================================================*/
  68.  
  69.  //Configuration initial
  70.  //BS CONFIG_PORT,PWR_UP //
  71.  sbitRfCE2 = 0;
  72.  sbitRfCS2 = 0;//BC CONFIG_PORT,CS //CE==1
  73.  sbitRfCLK2 = 0;//BC CONFIG_PORT,CLK
  74.  sbitRfData2 = 0;//BC CONFIG_PORT,DIN
  75.  //Configuration initial end
  76.  sbitRfCS2 = 1;//BS CONFIG_PORT,CS //entry configuration mode ce==0
  77. //CALL Delay_5us //Tcs2data min. 5us
  78.  for (i = 0; i < 20; i++);    // Wait 5us 
  79.  Channel2Write8bitData(RF_CONFIG_DATA14);
  80.  Channel2Write8bitData(RF_CONFIG_DATA13);
  81.  Channel2Write8bitData(RF_CONFIG_DATA12);
  82.  Channel2Write8bitData(RF_CONFIG_DATA11);
  83.  Channel2Write8bitData(RF_CONFIG_DATA10);
  84.  Channel2Write8bitData(RF_CONFIG_DATA9);
  85.  Channel2Write8bitData(RF_CONFIG_DATA8);
  86.  Channel2Write8bitData(RF_CONFIG_DATA7);
  87.  Channel2Write8bitData(RF_CONFIG_DATA6);
  88.  Channel2Write8bitData(RF_CONFIG_DATA5);
  89.  Channel2Write8bitData(RF_CONFIG_DATA4);
  90.  Channel2Write8bitData(RF_CONFIG_DATA3);
  91.  Channel2Write8bitData(RF_CONFIG_DATA2);
  92.  Channel2Write8bitData(RF_CONFIG_DATA1);
  93.  Channel2Write8bitData(RF_CONFIG_DATA00);
  94.  
  95.  for (i = 0; i < 20; i++);    // Wait 5us
  96.  sbitRfCS2 = 0;  //BC CONFIG_PORT,CS //After finish configuration mode,Entry stanby mode
  97.  sbitRfData2 = 0; //BC CONFIG_PORT,DIN //Remain low
  98.  sbitRfCE2 = 1; //BS CONFIG_PORT,CE
  99. //***********************************************************
  100.  for (i = 0; i < 200; i++);    // Wait 5us
  101. /*==================================================*/
  102. //config channeal 3
  103. /*==================================================*/
  104.  //Configuration initial
  105.  //BS CONFIG_PORT,PWR_UP //
  106.  sbitRfCE3 = 0;
  107.  sbitRfCS3 = 0;//BC CONFIG_PORT,CS //CE==1
  108.  sbitRfCLK3 = 0;//BC CONFIG_PORT,CLK
  109.  sbitRfData3 = 0;//BC CONFIG_PORT,DIN
  110.  //Configuration initial end
  111.  sbitRfCS3 = 1;//BS CONFIG_PORT,CS //entry configuration mode ce==0
  112. //CALL Delay_5us //Tcs2data min. 5us
  113.  for (i = 0; i < 20; i++);    // Wait 5us 
  114.  Channel3Write8bitData(RF_CONFIG_DATA14);
  115.  Channel3Write8bitData(RF_CONFIG_DATA13);
  116.  Channel3Write8bitData(RF_CONFIG_DATA12);
  117.  Channel3Write8bitData(RF_CONFIG_DATA11);
  118.  Channel3Write8bitData(RF_CONFIG_DATA10);
  119.  Channel3Write8bitData(RF_CONFIG_DATA9);
  120.  Channel3Write8bitData(RF_CONFIG_DATA8);
  121.  Channel3Write8bitData(RF_CONFIG_DATA7);
  122.  Channel3Write8bitData(RF_CONFIG_DATA6);
  123.  Channel3Write8bitData(RF_CONFIG_DATA5);
  124.  Channel3Write8bitData(RF_CONFIG_DATA4);
  125.  Channel3Write8bitData(RF_CONFIG_DATA3);
  126.  Channel3Write8bitData(RF_CONFIG_DATA2);
  127.  Channel3Write8bitData(RF_CONFIG_DATA1);
  128.  Channel3Write8bitData(RF_CONFIG_DATA00);
  129.  
  130.  for (i = 0; i < 20; i++);    // Wait 5us
  131.  sbitRfCS3 = 0;  //BC CONFIG_PORT,CS //After finish configuration mode,Entry stanby mode
  132.  sbitRfData3 = 0; //BC CONFIG_PORT,DIN //Remain low
  133.  sbitRfCE3 = 1; //BS CONFIG_PORT,CE
  134. //***********************************************************
  135.  for (i = 0; i < 200; i++);    // Wait 5us
  136. /*==================================================*/
  137. //config channeal 4
  138. /*==================================================*/
  139.  //Configuration initial
  140.  //BS CONFIG_PORT,PWR_UP //
  141.  sbitRfCE4 = 0;
  142.  sbitRfCS4 = 0;//BC CONFIG_PORT,CS //CE==1
  143.  sbitRfCLK4 = 0;//BC CONFIG_PORT,CLK
  144.  sbitRfData4 = 0;//BC CONFIG_PORT,DIN
  145.  //Configuration initial end
  146.  sbitRfCS4 = 1;//BS CONFIG_PORT,CS //entry configuration mode ce==0
  147. //CALL Delay_5us //Tcs2data min. 5us
  148.  for (i = 0; i < 20; i++);    // Wait 5us 
  149.  Channel4Write8bitData(RF_CONFIG_DATA14);
  150.  Channel4Write8bitData(RF_CONFIG_DATA13);
  151.  Channel4Write8bitData(RF_CONFIG_DATA12);
  152.  Channel4Write8bitData(RF_CONFIG_DATA11);
  153.  Channel4Write8bitData(RF_CONFIG_DATA10);
  154.  Channel4Write8bitData(RF_CONFIG_DATA9);
  155.  Channel4Write8bitData(RF_CONFIG_DATA8);
  156.  Channel4Write8bitData(RF_CONFIG_DATA7);
  157.  Channel4Write8bitData(RF_CONFIG_DATA6);
  158.  Channel4Write8bitData(RF_CONFIG_DATA5);
  159.  Channel4Write8bitData(RF_CONFIG_DATA4);
  160.  Channel4Write8bitData(RF_CONFIG_DATA3);
  161.  Channel4Write8bitData(RF_CONFIG_DATA2);
  162.  Channel4Write8bitData(RF_CONFIG_DATA1);
  163.  Channel4Write8bitData(RF_CONFIG_DATA00);
  164.  
  165.  for (i = 0; i < 20; i++);    // Wait 5us
  166.  sbitRfCS4 = 0;  //BC CONFIG_PORT,CS //After finish configuration mode,Entry stanby mode
  167.  sbitRfData4 = 0; //BC CONFIG_PORT,DIN //Remain low
  168.  sbitRfCE4 = 1; //BS CONFIG_PORT,CE
  169. //***********************************************************
  170. }
  171. //====================================================
  172. //====================================================
  173. //Low for ready Data High for Write Data
  174. //时序 Low  8 LowHigh Low
  175. void Channel1Write8bitData(unsigned char ucWriteData)
  176. {
  177.      unsigned char ucGeneralCount=0;
  178.      unsigned char i;
  179.      //__disable_interrupt();
  180.      
  181.      for (ucGeneralCount=0;ucGeneralCount<8;ucGeneralCount++)
  182.      {
  183.         sbitRfCLK1 = 0;
  184.         for (i = 0; i < 1; i++);    // Wait 0.5us
  185.         if ((ucWriteData & BIT7) == BIT7)
  186.           {sbitRfData1 = 1;} //set   DATA bit
  187.         else
  188.           {sbitRfData1 = 0;} //reset DATA bit
  189.         for (i = 0; i < 1; i++);    // Wait 0.5us
  190.         sbitRfCLK1 = 1;
  191.         for (i = 0; i < 2; i++);    // Wait 1us
  192.         ucWriteData=ucWriteData<<1;  //MSB   
  193.      }
  194.      sbitRfCLK1 = 0;// for last low
  195.      //sbitRfData1 = 0;
  196.      //_EINT();                             //enable interrupt   
  197. }
  198. //====================================================
  199. //====================================================
  200. //Low for ready Data High for Write Data
  201. //时序 Low  8 LowHigh Low
  202. void Channel2Write8bitData(unsigned char ucWriteData)
  203. {
  204.      unsigned char ucGeneralCount=0;
  205.      unsigned char i;
  206.      //__disable_interrupt();
  207.      
  208.      for (ucGeneralCount=0;ucGeneralCount<8;ucGeneralCount++)
  209.      {
  210.         sbitRfCLK2 = 0;
  211.         for (i = 0; i < 1; i++);    // Wait 0.5us
  212.         if ((ucWriteData & BIT7) == BIT7)
  213.           {sbitRfData2 = 1;} //set   DATA bit
  214.         else
  215.           {sbitRfData2 = 0;} //reset DATA bit
  216.         for (i = 0; i < 1; i++);    // Wait 0.5us
  217.         sbitRfCLK2 = 1;
  218.         for (i = 0; i < 2; i++);    // Wait 1us
  219.         ucWriteData=ucWriteData<<1;  //MSB   
  220.      }
  221.      sbitRfCLK2 = 0;// for last low
  222.      //sbitRfData2 = 0;
  223.      //_EINT();                             //enable interrupt   
  224. }
  225. //====================================================
  226. //====================================================
  227. //Low for ready Data High for Write Data
  228. //时序 Low  8 LowHigh Low
  229. void Channel3Write8bitData(unsigned char ucWriteData)
  230. {
  231.      unsigned char ucGeneralCount=0;
  232.      unsigned char i;
  233.      //__disable_interrupt();
  234.      
  235.      for (ucGeneralCount=0;ucGeneralCount<8;ucGeneralCount++)
  236.      {
  237.         sbitRfCLK3 = 0;
  238.         for (i = 0; i < 1; i++);    // Wait 0.5us
  239.         if ((ucWriteData & BIT7) == BIT7)
  240.           {sbitRfData3 = 1;} //set   DATA bit
  241.         else
  242.           {sbitRfData3 = 0;} //reset DATA bit
  243.         for (i = 0; i < 1; i++);    // Wait 0.5us
  244.         sbitRfCLK3 = 1;
  245.         for (i = 0; i < 2; i++);    // Wait 1us
  246.         ucWriteData=ucWriteData<<1;  //MSB   
  247.      }
  248.      sbitRfCLK3 = 0;// for last low
  249.      //sbitRfData3 = 0;
  250.      //_EINT();                             //enable interrupt   
  251. }
  252. //====================================================
  253. //====================================================
  254. //Low for ready Data High for Write Data
  255. //时序 Low  8 LowHigh Low
  256. void Channel4Write8bitData(unsigned char ucWriteData)
  257. {
  258.      unsigned char ucGeneralCount=0;
  259.      unsigned char i;
  260.      //__disable_interrupt();
  261.      
  262.      for (ucGeneralCount=0;ucGeneralCount<8;ucGeneralCount++)
  263.      {
  264.         sbitRfCLK4 = 0;
  265.         for (i = 0; i < 1; i++);    // Wait 0.5us
  266.         if ((ucWriteData & BIT7) == BIT7)
  267.           {sbitRfData4 = 1;} //set   DATA bit
  268.         else
  269.           {sbitRfData4 = 0;} //reset DATA bit
  270.         for (i = 0; i < 1; i++);    // Wait 0.5us
  271.         sbitRfCLK4 = 1;
  272.         for (i = 0; i < 2; i++);    // Wait 1us
  273.         ucWriteData=ucWriteData<<1;  //MSB   
  274.      }
  275.      sbitRfCLK4 = 0;// for last low
  276.      //sbitRfData4 = 0;
  277.      //_EINT();                             //enable interrupt   
  278. }
  279. void nRF2401RxData(void)
  280. {
  281.  unsigned char i;
  282.  bit bitReceivedDataFlag = 0;
  283.  //ShockBurst TX initial
  284.  sbitRfCE1 = 1;
  285.  sbitRfCS1 = 0;//BC CONFIG_PORT,CS
  286.  sbitRfCLK1 = 0;//BC CONFIG_PORT,CLK
  287.  //sbitRfData = 0;//BC CONFIG_PORT,DIN
  288.  //ShockBurst TX initial end
  289.  //for (i = 0; i < 20; i++);    // Wait 5us //Tce2data min. 5us
  290.  for (i = 0; i < 20; i++)
  291.  {
  292.    //if ( (sbitRfDR1 == 1) | (sbitRfDR2 == 1) | (sbitRfDR3 == 1) | (sbitRfDR4 == 1) )
  293.    if (sbitRfDR1 == 1)//(bitReceivedDataFlag == 0)//(sbitRfDR1 == 1)
  294.    {
  295.       sbitLED = 0;
  296.   //Receive_data_start:
  297.       
  298.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 0] = Channel1Read8bitData();
  299.   
  300.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 1] = Channel1Read8bitData();
  301.   
  302.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 2] = Channel1Read8bitData();
  303.   
  304.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 3] = Channel1Read8bitData();
  305.   
  306.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 4] = Channel1Read8bitData();
  307.   
  308.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 5] = Channel1Read8bitData();
  309.       
  310.     gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 6] = Channel1Read8bitData();
  311.     
  312.     #ifndef  _RF_PADLOAD_TEST_
  313.     //#define _RF_PADLOAD_TEST_
  314.     gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 7] = Channel1Read8bitData();
  315.     
  316.     gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*0 + 8] = Channel1Read8bitData();
  317.     
  318.     #endif
  319.     
  320.       //#ifndef  _USB_REQUEST_H
  321.       //Channel1Read8bitData();
  322.       
  323.       
  324.   while( sbitRfDR1 == 1 )
  325.   {
  326.     ;
  327.   }
  328.   
  329.       sbitLED = 1;
  330.       //DelayMs(100);
  331.       bitReceivedDataFlag = 1; //Set flag for quit the Check Circle
  332.     
  333.  
  334. }//if
  335.        
  336. if (bitReceivedDataFlag == 1)
  337.    break;
  338.  }//for
  339.  for (i = 0; i < 20; i++)
  340.  {
  341.    if (sbitRfDR2 == 1)
  342.    {
  343.       sbitLED = 0;
  344.   //Receive_data_start:
  345.       
  346.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 0] = Channel2Read8bitData();
  347.   
  348.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 1] = Channel2Read8bitData();
  349.   
  350.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 2] = Channel2Read8bitData();
  351.   
  352.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 3] = Channel2Read8bitData();
  353.   
  354.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 4] = Channel2Read8bitData();
  355.   
  356.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 5] = Channel2Read8bitData();
  357.   
  358.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 6] = Channel2Read8bitData();
  359.       
  360.       #ifndef  _RF_PADLOAD_TEST_
  361.       
  362.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 7] = Channel2Read8bitData();
  363.   
  364.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*1 + 8] = Channel2Read8bitData();
  365.       
  366.       #endif
  367.       
  368.   while( sbitRfDR2 == 1 )
  369.   {
  370.     ;
  371.   }
  372.   
  373.       sbitLED = 1;
  374.       //DelayMs(100);
  375.       bitReceivedDataFlag = 1; //Set flag for quit the Check Circle
  376.     
  377.  
  378. }//if
  379.     
  380. if (bitReceivedDataFlag == 1)
  381.    break;
  382.  }//for
  383.  //DelayMs(1);
  384.  for (i = 0; i < 20; i++)
  385.  {
  386.    if (sbitRfDR3 == 1)//(bitReceivedDataFlag == 0)//
  387.    {
  388.       sbitLED = 0;
  389.   //Receive_data_start:
  390.       
  391.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 0] = Channel3Read8bitData();
  392.   
  393.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 1] = Channel3Read8bitData();
  394.   
  395.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 2] = Channel3Read8bitData();
  396.   
  397.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 3] = Channel3Read8bitData();
  398.   
  399.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 4] = Channel3Read8bitData();
  400.   
  401.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 5] = Channel3Read8bitData();
  402.   
  403.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 6] = Channel3Read8bitData();
  404.       
  405.       #ifndef  _RF_PADLOAD_TEST_
  406.       
  407.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 7] = Channel3Read8bitData();
  408.   
  409.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*2 + 8] = Channel3Read8bitData();
  410.       
  411.       #endif
  412.       
  413.   while( sbitRfDR3 == 1 )
  414.   {
  415.     ;
  416.   }
  417.   
  418.       sbitLED = 1;
  419.       //DelayMs(100);
  420.       bitReceivedDataFlag = 1; //Set flag for quit the Check Circle
  421.     
  422.  
  423. }//if
  424.     if (bitReceivedDataFlag == 1)
  425.    break;
  426.  }//for
  427.  for (i = 0; i < 20; i++)
  428.  {
  429.    if (sbitRfDR4 == 1)
  430.    {
  431.       sbitLED = 0;
  432.   //Receive_data_start:
  433.       
  434.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 0] = Channel4Read8bitData();
  435.   
  436.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 1] = Channel4Read8bitData();
  437.   
  438.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 2] = Channel4Read8bitData();
  439.   
  440.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 3] = Channel4Read8bitData();
  441.   
  442.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 4] = Channel4Read8bitData();
  443.   
  444.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 5] = Channel4Read8bitData();
  445.   
  446.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 6] = Channel4Read8bitData();
  447.       
  448.       #ifndef  _RF_PADLOAD_TEST_
  449.       
  450.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 7] = Channel4Read8bitData();
  451.   
  452.       gaucRxDataFromRfBuffer[COUNT_BASE + (COUNT_BASE + RF_PADLOAD)*3 + 8] = Channel4Read8bitData();
  453.       
  454.       #endif
  455.       
  456.   while( sbitRfDR4 == 1 )
  457.   {
  458.     ;
  459.   }
  460.   
  461.       sbitLED = 1;
  462.       //DelayMs(100);
  463.       bitReceivedDataFlag = 1; //Set flag for quit the Check Circle
  464.     
  465.  
  466. }//if
  467.     
  468.   
  469.     
  470. if (bitReceivedDataFlag == 1)
  471.    break;
  472.  }//for
  473. }
  474. //nRF2401 ready Data when CLK is Low; Mcu read data when CLK is high
  475. //CLK时序: Low 8个HighLow Low 
  476. unsigned char Channel1Read8bitData(void)
  477. {
  478.      unsigned char ucGeneralCount=0;
  479.      unsigned char ucReadData=0;
  480.      unsigned char i;
  481.  //unsigned char j=0;
  482.      //__disable_interrupt();
  483.      sbitRfCLK1 = 0;
  484.      //j = P2MDOUT;
  485.  //j = P2;
  486.  //j = P0;
  487.      for (ucGeneralCount=0;ucGeneralCount<8;ucGeneralCount++)
  488.      {
  489.         
  490.         ucReadData = ucReadData<<1;//MSB
  491.         sbitRfCLK1 = 1;//BS CONFIG_PORT,CLK ;Time Hold min.500ns
  492.         for (i = 0; i < 1; i++);    // Wait 2.5us
  493.         if (sbitRfData1 == 1)
  494.           {ucReadData |= BIT0;} //bit 1
  495.         else
  496.           {ucReadData &= ~BIT0;} // bit is 0
  497.         //for (i = 0; i < 1; i++);    // Wait 2.5us  
  498.         for (i = 0; i < 1; i++);    // Wait 2.5us
  499.     sbitRfCLK1 = 0;
  500.         for (i = 0; i < 2; i++);    // Wait 2.5us
  501.       }
  502.  return ucReadData;
  503. }
  504. //nRF2401 ready Data when CLK is Low; Mcu read data when CLK is high
  505. //CLK时序: Low 8个HighLow Low 
  506. unsigned char Channel2Read8bitData(void)
  507. {
  508.      unsigned char ucGeneralCount=0;
  509.      unsigned char ucReadData=0;
  510.      unsigned char i;
  511.  //unsigned char j=0;
  512.      //__disable_interrupt();
  513.      sbitRfCLK2 = 0;
  514.      //j = P2MDOUT;
  515.  //j = P2;
  516.  //j = P0;
  517.      for (ucGeneralCount=0;ucGeneralCount<8;ucGeneralCount++)
  518.      {
  519.         
  520.         ucReadData=ucReadData<<1;//MSB
  521.         sbitRfCLK2 = 1;//BS CONFIG_PORT,CLK ;Time Hold min.500ns
  522.         for (i = 0; i < 1; i++);    // Wait 2.5us
  523.         if (sbitRfData2 == 1)
  524.           {ucReadData |= BIT0;} //bit 1
  525.         else
  526.           {ucReadData &= ~BIT0;} // bit is 0
  527.         //for (i = 0; i < 1; i++);    // Wait 2.5us  
  528.         for (i = 0; i < 1; i++);    // Wait 2.5us
  529. sbitRfCLK2 = 0;
  530.         for (i = 0; i < 2; i++);    // Wait 2.5us
  531.       }
  532.  return ucReadData;
  533. }
  534. //nRF2401 ready Data when CLK is Low; Mcu read data when CLK is high
  535. //CLK时序: Low 8个HighLow Low 
  536. unsigned char Channel3Read8bitData(void)
  537. {
  538.      unsigned char ucGeneralCount=0;
  539.      unsigned char ucReadData=0;
  540.      unsigned char i;
  541.  //unsigned char j=0;
  542.      //__disable_interrupt();
  543.      sbitRfCLK3 = 0;
  544.      //j = P2MDOUT;
  545.  //j = P2;
  546.  //j = P0;
  547.      for (ucGeneralCount=0;ucGeneralCount<8;ucGeneralCount++)
  548.      {
  549.         
  550.         ucReadData=ucReadData<<1;//MSB
  551.         sbitRfCLK3 = 1;//BS CONFIG_PORT,CLK ;Time Hold min.500ns
  552.         for (i = 0; i < 1; i++);    // Wait 2.5us
  553.         if (sbitRfData3 == 1)
  554.           {ucReadData |= BIT0;} //bit 1
  555.         else
  556.           {ucReadData &= ~BIT0;} // bit is 0
  557.         //for (i = 0; i < 1; i++);    // Wait 2.5us  
  558.         for (i = 0; i < 1; i++);    // Wait 2.5us
  559. sbitRfCLK3 = 0;
  560.         for (i = 0; i < 2; i++);    // Wait 2.5us
  561.       }
  562.  return ucReadData;
  563. }
  564. //nRF2401 ready Data when CLK is Low; Mcu read data when CLK is high
  565. //CLK时序: Low 8个HighLow Low 
  566. unsigned char Channel4Read8bitData(void)
  567. {
  568.      unsigned char ucGeneralCount=0;
  569.      unsigned char ucReadData=0;
  570.      unsigned char i;
  571.  //unsigned char j=0;
  572.      //__disable_interrupt();
  573.      sbitRfCLK4 = 0;
  574.      //j = P2MDOUT;
  575.  //j = P2;
  576.  //j = P0;
  577.      for (ucGeneralCount=0;ucGeneralCount<8;ucGeneralCount++)
  578.      {
  579.         
  580.         ucReadData=ucReadData<<1;//MSB
  581.         sbitRfCLK4 = 1;// ;Time Hold min.500ns
  582.         for (i = 0; i < 1; i++);    // Wait 2.5us
  583.         if (sbitRfData4 == 1)
  584.           {ucReadData |= BIT0;} //bit 1
  585.         else
  586.           {ucReadData &= ~BIT0;} // bit is 0
  587.         //for (i = 0; i < 1; i++);    // Wait 2.5us  
  588.         for (i = 0; i < 1; i++);    // Wait 2.5us
  589. sbitRfCLK4 = 0;
  590.         for (i = 0; i < 2; i++);    // Wait 2.5us
  591.       }
  592.  return ucReadData;
  593. }
  594. //-----------------------------------------------------------------------------
  595. // End Of File
  596. //-----------------------------------------------------------------------------