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

📄 rf_test.c

📁 CC1110无线收发CSMA的源程序。使用的开发环境是IAR7.2H
💻 C
字号:
/******************************************************************************
*                                                                             *
*        **********                                                           *
*       ************                                                          *
*      ***        ***                                                         *
*     ***    ++    ***                                                        *
*     ***   +  +   ***                      CHIPCON                           *
*     ***   +                                                                 *
*     ***   +  +   ***                                                        *
*     ***    ++    ***                                                        *
*      ***        ***                                                         *
*       ************                                                          *
*        **********                                                           *
*                                                                             *
*******************************************************************************

Filename:     rf_test.c
Target:       cc2510
Author:       efu
Revised:      20/6-2006
Revision:     1.0

Description:
    This file provides 4 small tests which demonstrates use of the radio.

******************************************************************************/


#include "app_ex.h"
#include "cul.h"
#include "pingPong.h"
#include "menu.h"
#include "string.h"
#include "uart.h"
#ifdef CC1110_CSMA_RX
#include "mydefine.h"
#endif


#define ADDRESS_0 0x01
#define ADDRESS_1 0x02

#define RECEIVE_TIMEOUT               1200

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

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


void CSMA(char sell)
{
  if(sell == 0)
  {
    myAddr = ADDRESS_0;
    remoteAddr = ADDRESS_1;
    radioInit(frequency, myAddr);
    INT_GLOBAL_ENABLE(INT_ON);
    contionuousMode();
  }
  else if(sell == 1)
  {
    myAddr = ADDRESS_1;
    remoteAddr = ADDRESS_0;
    halWait(10);
    radioInit(frequency, myAddr);
    INT_GLOBAL_ENABLE(INT_ON);
    halWait(10);
    receiveMode();
   }
}

/******************************************************************************
* @fn  contionuousMode
*
* @brief
*      Function for transferring packets until stopped by user.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void contionuousMode(void)
{
   BOOL res;
   INT8U count;
#ifdef CC1110_CSMA_TX1
   BYTE sendBuffer1[] = "hello world";
#else
   BYTE sendBuffer1[] = "hello CDWXL";
#endif
   while(1){
      RLED = LED_OFF;
      YLED = LED_ON;
      res = radioSend(sendBuffer1, sizeof(sendBuffer1), remoteAddr, DO_ACK);
      YLED = LED_OFF;

      if(res == TRUE)
      {
         if(++count > 1)
         {
            RLED = LED_ON;
            if(count >=250)
            {
                count = 2;
            }
         }
      }
      else
      {
         count = 0;
      }
      halWait(200);
      halWait(200);
   }
}


/******************************************************************************
* @fn  receiveMode
*
* @brief
*      Function for receiving data.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void receiveMode(void)
{
   BYTE* receiveBuffer;
   BYTE length;
   BYTE res;
   BYTE sender;
#ifdef CC1110_CSMA_RX
   unsigned char temp2[5] = {0x68,0xaa,'U','Y','J'};
#endif
   while( !stopApplication() )
   {
      res = radioReceive(&receiveBuffer, &length, RECEIVE_TIMEOUT, &sender);

      if(res == TRUE)
      {
         RLED = !RLED;//LED_ON;
#ifdef CC1110_CSMA_RX
            Print_word(receiveBuffer,7,16,length-1);
            UartSendWord(temp2,5);
            UartSendWord((void*)di_yz,sizeof(di_yz));
#endif
      }
      else
      {
      }
      RLED = LED_OFF;
   }
   halWait(5);
   return;
}

⌨️ 快捷键说明

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