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

📄 main.c

📁 reference about wireless design which is helpful to everyone
💻 C
字号:
#include "cc2511_app_ex_lib_headers.h"
#include "simple_hid_eb.h"
#include "RF04EB.h"
#include "lcd.h"




BYTE __xdata rfTransmitBuffer[16];//Used to store RF packets that are to be sent
RF_PACKET __xdata * pRfTxBuffer = (RF_PACKET __xdata *) &rfTransmitBuffer[0];//For simplicity we make a RF_PACKET pointer to the RX buffer

BYTE dongleAddress; //device address of the USB dongle.
volatile BOOL ackTimeout;    //is set if no ACK packet is received after sending a data packet.
volatile BOOL radioReadyToSend;  //used to know when the radio is ready for a new packet



void main(void) {

   INIT_JOYSTICK();
   INIT_BUTTON();
   INIT_POT();
   INIT_JOYSTICK_PUSH();
   initLcd();


   CLKCON |= 0x20;//set TICKSPD
   rfruInit(16);//Initialize the RF framework, buffer size 18. That is 9 byte payload data + 7 byte header required by the RF framework.
   t4mgrInit(25000);//Initialize the timer4 manager with 25 ms resolution.


   INT_GLOBAL_ENABLE(INT_ON);


   rfruSetMyAddress(0x12, 0x13, 0x14, 0x42);//simply use a fixed address, no binding.
   dongleAddress = 0x01;//simply use a fixed address, no binding.



   while (TRUE) {
      if(getPotValue() < POT_CENTER) { simpleMouse(); }//use potmeter do decide which mode to enter.
      else { practicalJoke(); }
   }
}






// ****************************************************************************************
// Hook required by the RF library.
// ****************************************************************************************
void rfruHookRfEvent(BYTE rfEvent, BYTE eventData){

   switch (rfEvent)
   {
   case RFRU_EVENT_DATA_PACKET_RECEIVED ://dont care
      break;
   case RFRU_EVENT_RETRANSMSSION_RECEIVED ://dont care
      break;
   case RFRU_EVENT_ACK_RECEIVED :
      //a packet successfully sent, tell main loop we are ready to send a new packet.
      radioReadyToSend = TRUE;
      break;
   case RFRU_EVENT_NACK_RECEIVED ://dont care
      break;
   case RFRU_EVENT_DATA_REQUEST_NACKED://dont care
      break;
   case RFRU_EVENT_BIND_SUCCESSFULL ://dont care
      break;
   case RFRU_EVENT_ACK_TIMEOUT :
      //tell main loop
      ackTimeout = TRUE;
      break;
   case RFRU_EVENT_DATA_PACKET_REQUEST_TIMEOUT://dont care
      break;
   case RFRU_EVENT_BIND_REQUEST_TIMEOUT://dont care
      break;
   }
}

⌨️ 快捷键说明

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