?? rf_test.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_FHSS_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_FHSS(char sell)
{
if(sell == 0)
{
#ifdef CC1110_FHSS_TX
radioInit(frequency, myAddr,0);
myAddr = ADDRESS_1;
remoteAddr = ADDRESS_2;
#endif
#ifdef CC1110_FHSS_TX2
radioInit(frequency, myAddr,0);
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,0);
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)
{
BYTE sendBuffer1[4];
BYTE* receiveBuffer;
BYTE length;
BYTE res;
int i,Key = 0;
BYTE sender;
int CHANNR_Number = 0;
BYTE Rx_buffer[5];
sendBuffer1[0] = 0x40;
sendBuffer1[1] = 0x02;
#ifdef CC1110_FHSS_TX2
sendBuffer1[2] = 0x02;
#endif
#ifdef CC1110_FHSS_TX
sendBuffer1[2] = 0x01;
#endif
sendBuffer1[3] = 0x0D;
P1DIR |= 0x02;
P1INP |= ~0xF3;
P1DIR &= 0xF3;
while(1){
if(P1_2 == 0)
{
while((P1_2 == 0));
Key = 1;
}
if(Key != 0)
{
Key = 0;
while(1)
{
res = radioSend(sendBuffer1, sizeof(sendBuffer1), remoteAddr, DO_ACK);
halWait(5);
res = radioReceive(&receiveBuffer, &length, 10, &sender);
if(res == TRUE)
{
for(i=0;i<5;i++)
{
Rx_buffer[i] = *receiveBuffer++;
}
#ifdef CC1110_FHSS_TX2
if((Rx_buffer[2] == 0x02) && (Rx_buffer[3] == 'Y'))
#endif
#ifdef CC1110_FHSS_TX
if((Rx_buffer[2] == 0x01) && (Rx_buffer[3] == 'Y'))
#endif
{
YLED = !YLED;
break;
}
}
else
{
if(++CHANNR_Number == 6)CHANNR_Number = 0;
radioInit(frequency, myAddr,CHANNR_Number);
}
}
}
}
}
/******************************************************************************
* @fn receiveMode
*
* @brief
* Function for receiving data.
*
* Parameters:
*
* @param void
*
* @return void
*
******************************************************************************/
void receiveMode(void)
{
BYTE* receiveBuffer;
BYTE Rx_buffer[4];
BYTE Tx_buffer[5];
BYTE res;
BYTE length;
unsigned char number[1];
int i=0;
#ifdef CC1110_FHSS_RX
unsigned char temp2[5] = {0x68,0xaa,'U','Y','J'};
#endif
int CHANNR_Number = 0;
BYTE sender;
Tx_buffer[0] = 0x40;
Tx_buffer[1] = 0x02;
Tx_buffer[4] = 0x0D;
Rx_buffer[0] = 0x00;
while( !stopApplication() )
{
if(radioReceive(&receiveBuffer, &length, 10, &sender))
{
for(i=0;i<4;i++)
{
Rx_buffer[i] = *receiveBuffer++;
}
Tx_buffer[2] = Rx_buffer[2];
Tx_buffer[3] = 'Y';
res = radioSend(Tx_buffer, sizeof(Tx_buffer), remoteAddr, DO_ACK);
halWait(1);
if((Rx_buffer[2] == 0x01) && res)
{
#ifdef CC1110_FHSS_RX
number[0] = CHANNR_Number % 10 + 48;
Print_word(number,6,79,1);
UartSendWord(temp2,5);
UartSendWord((void*)di_yz,sizeof(di_yz));
#endif
}
else if((Rx_buffer[2] == 0x02) && res)
{
#ifdef CC1110_FHSS_RX
number[0] = CHANNR_Number % 10 + 48;
Print_word(number,6,0,1);
UartSendWord(temp2,5);
UartSendWord((void*)di_yz,sizeof(di_yz));
#endif
}
if(++CHANNR_Number == 6)CHANNR_Number = 0;
radioInit(frequency, myAddr,CHANNR_Number);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -