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

📄 rf_test.c

📁 CC1110点对多点FDMA传输方式C源码
💻 C
字号:
/******************************************************************************
*                                                                             *
*    ****       ******       ****
*     ****     ********     ****
*      ****   ****  ****   ****
*       **** ****    **** ****              wxl
*        *******      *******
*         *****        *****                    成都无线龙通讯科技有限公司
*                                                                             *
*******************************************************************************
Target:       cc1110                          使用芯片:       cc1110
Author:       WXL                             程 序 员:      无线龙
data:         1/12-2007                       日    期:      1/12-2007
******************************************************************************/
/**********************************头文件**************************************/
#include "app_ex.h"
#include "cul.h"
#include "menu.h"
#include "string.h"
#ifdef CC1110_FDMA_RX
#include "mydefine.h"
#endif
/******************************************************************************/


#define ADDRESS_0 0x01
#define ADDRESS_1 0x02
#define ADDRESS_2 0x03
#define RECEIVE_TIMEOUT               1200

#define PER_RECEIVE_TIMEOUT          10000

void rf_test_main(void);
void receiveMode(void);
void contionuousMode(void);

UINT8 myAddr;
UINT8 remoteAddr;
BOOL myAddressSet = FALSE;
UINT32 frequency;

void Single_More_FDMA(char sell)
{
  if(sell == 0)
  {
#ifdef CC1110_FDMA_TX1
    radioInit(frequency, myAddr,0);
    myAddr = ADDRESS_1;
    remoteAddr = ADDRESS_2;
#endif
#ifdef CC1110_FDMA_TX2
    radioInit(frequency, myAddr,1);
    myAddr = ADDRESS_1;
    remoteAddr = ADDRESS_2;
#endif
    INT_GLOBAL_ENABLE(INT_ON);
    contionuousMode();
  }
  else if(sell == 1)
  {
    myAddr = ADDRESS_2;
    remoteAddr = ADDRESS_1;
    halWait(10);
    INT_GLOBAL_ENABLE(INT_ON);
    radioInit(frequency, myAddr,1);
    halWait(10);
    receiveMode();
   }
}

/******************************************************************************
* @fn  contionuousMode
*
* @brief
*      Function for transferring packets until stopped by user.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/

extern INT8U ScanKey(void);

int delay(void)
{
  halWait(200);
  return 0;
}
extern void UartTX_Send_String(char *Data,int len);

void contionuousMode(void)
{
   UINT32 count_send;
   BOOL res;
   int state = 0;
   int flag;
   BYTE sendBuffer1[4];
   sendBuffer1[0] = 0x40;
   sendBuffer1[1] = 0x02;
#ifdef CC1110_FDMA_TX2
    sendBuffer1[2] = 0x02;
#endif
#ifdef CC1110_FDMA_TX1
    sendBuffer1[2] = 0x01;
#endif

   sendBuffer1[3] = 0x0D;
   P1DIR |= 0x02;
   P1INP |= ~0xF3;
   P1DIR &= 0xF3;
   while(1){
      flag = 0;
      state = 0;
     if(P1_2 == 0)
      {
        while((P1_2 == 0));
        RLED = LED_OFF;
#ifdef CC1110_FDMA_TX2
        sendBuffer1[2] = 0x02;
#endif
#ifdef CC1110_FDMA_TX
       sendBuffer1[2] = 0x01;
#endif
        state = 1;
        count_send = 4;
      }
      if(state == 1)
      {
        while(count_send--)
        {
          res = radioSend(sendBuffer1, sizeof(sendBuffer1), remoteAddr, DO_ACK);
          if(res)
          {
             break;
          }
          YLED = !YLED;
        }
      }
          state = 0;
      if(flag == 0)
      {
        RLED = LED_ON;
      }
   }
}


/******************************************************************************
* @fn  receiveMode
*
* @brief
*      Function for receiving data.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
unsigned char number1 = 0,number2 = 0,number[4];
void receiveMode(void)
{
   BYTE* receiveBuffer;
   BYTE length;
   BYTE res;

   UINT32 count_Receice;
   int i=0;
   BYTE sender;
#ifdef CC1110_FDMA_RX
   unsigned char temp2[5] = {0x68,0xaa,'U','Y','J'};
#endif
   while( !stopApplication() )
   {
     count_Receice = 2;
     while(count_Receice--)
     {
        res = radioReceive(&receiveBuffer, &length, 10, &sender);
        if(res == TRUE)
          break;
     }
        if(i>=1)
        {
          myAddr = ADDRESS_2;
          remoteAddr = ADDRESS_1;
          i = 0;
        }
        else
        {
          myAddr = ADDRESS_2;
          remoteAddr = ADDRESS_0;
          i++;
        }
        radioInit(frequency, myAddr,i);

        if(res == TRUE)
        {
            RLED = !RLED;
            if(i == 0)
            {
              number1++;
              number[0] = number1/10/10/10+48;
              number[1] = number1/10/10%10+48;
              number[2] = number1/10%10+48;
              number[3] = number1%10+48;
#ifdef CC1110_FDMA_RX
            Print_word(number,7,79,length);
            UartSendWord(temp2,5);
            UartSendWord((void*)di_yz,sizeof(di_yz));
#endif
            }
            else
            {
              number2++;
              number[0] = number2/10/10/10+48;
              number[1] = number2/10/10%10+48;
              number[2] = number2/10%10+48;
              number[3] = number2%10+48;
#ifdef CC1110_FDMA_RX
            Print_word(number,7,0,length);
            UartSendWord(temp2,5);
            UartSendWord((void*)di_yz,sizeof(di_yz));
#endif
            }
        }
        else
        {
           RLED = LED_OFF;
        }
        RLED = LED_OFF;
     }
     halWait(5);
     return;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -