• PUDN用户
    了解作者
  • C/C++
    开发工具
  • 457KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 33
    下载次数
  • 2010-09-13 22:05
    上传日期
华凡科技开发的zigbee开发板代码。有双机通信程序、温度传感器程序等。使用开发板开发,容易上手。
kaifanbandaima.rar
内容介绍
/****************************************************************************** * * * ********** * * ************ * * *** *** * * *** ++ *** * * *** + + *** CHIPCON * * *** + * * *** + + *** * * *** ++ *** * * *** *** * * ************ * * ********** * * * ******************************************************************************* Filename: rf_test.c Target: cc2430 Author: efu Revised: 16/12-2005 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" #define ADDRESS_0 0x01 #define ADDRESS_1 0x02 #define SEND 0 #define RECEIVE 1 #define SINGLE 0 #define CONTINUOUS 1 #define PING_PONG 2 #define PER_TEST 3 #define EXIT 4 #define RECEIVE_TIMEOUT 1200 #define PING_PONG_TIMEOUT 1200 #define PING_PONG_REQUEST 0x80 #define PING_PONG_RESPONSE 0x40 #define PER_RECEIVE_TIMEOUT 10000 #define PER_TOTAL_PACKET_NUMBER 1000 #define PER_TEST_REQUEST 0x20 void initRfTest(void); void rf_test_main(void); void receivePacket(UINT8 *receiveByte); void sendPacket(UINT8 sendByte); void printAddress(UINT8 address); void printRSSI(INT8 rssi); UINT32 getFrequency(void); UINT8 getAddress(UINT8 a); void receiveMode(void); void singleMode(void); void contionuousMode(void); void pingPongMode(void); void perTestMode(void); void showState(void); void conductPerTest(void); void pingPongResponse(void); //UINT8 address0; //my adresse //UINT8 address1; //other adress UINT8 RxTxState; UINT8 myAddr; UINT8 remoteAddr; BOOL remoteAddressSet = FALSE; BOOL myAddressSet = FALSE; /****************************************************************************** * @fn initRfTest * * @brief * Initializes components for the RF test application example. * * Parameters: * * @param void * * @return void * ******************************************************************************/ void initRfTest(void) { char *menuText[] = {(char *)" Sender?", (char *)" Receiver?", (char *)" Set Freq?", (char *)" Set MyAddr?", (char *)" SetRemoteAddr"}; BYTE result; UINT32 frequency = 2405000; initLcd(); INIT_JOYSTICK(); INIT_BUTTON(); SET_MAIN_CLOCK_SOURCE(CRYSTAL); INIT_GLED(); INIT_YLED(); remoteAddressSet = FALSE; myAddressSet = FALSE; TXCTRLL=0xff;//cywu set txpwr to max while((result = lcdMenu(menuText, 5)) > 1) { if(result == 2) { frequency = getFrequency(); } else if(result == 3) { lcdUpdate((char *)"Set myAddress",(char *)""); myAddr = getAddress(myAddr); myAddressSet = TRUE; } else if(result == 4) { lcdUpdate((char *)"Set remoteAddr",(char *)""); remoteAddr = getAddress(remoteAddr); remoteAddressSet = TRUE; } else{ // ABORT_MENU return; } } if(result == 1) // Receiver { RxTxState = RECEIVE; if(myAddressSet == FALSE) { myAddr = ADDRESS_1; } if(remoteAddressSet == FALSE) { remoteAddr = ADDRESS_0; } lcdUpdate((char *)"Receiver",(char *)""); } else // Sender { RxTxState = SEND; if(myAddressSet == FALSE) { myAddr = ADDRESS_0; } if(remoteAddressSet == FALSE) { remoteAddr = ADDRESS_1; } lcdUpdate((char *)"Sender",(char *)""); } waitVisible(CLEARLY_VISIBLE); radioInit(frequency, myAddr); } /****************************************************************************** * @fn rf_test_main * * @brief * Main function. * * Parameters: * * @param void * * @return void * ******************************************************************************/ #ifdef COMPLETE_APPLICATION void rf_test_main(void){ #else void main(void){ #endif UINT8 mode = 0; char *menuText[] = {(char *)" Single?", (char *)" Continuous?", (char *)" PingPong?", (char *)" PER Test?"}; while(getJoystickDirection() != CENTRED); initRfTest(); // Turning on interrupts INT_GLOBAL_ENABLE(INT_ON); while(!stopApplication()) { // If set up as slave, the unit will only be in receive if(RxTxState == RECEIVE) { lcdUpdate((char *)"Receive",(char *)"Node"); waitVisible(CLEARLY_VISIBLE); receiveMode(); return; } else { mode = lcdMenu(menuText, 4); switch (mode){ case SINGLE: lcdUpdate((char *)"Single mode", (char *)""); waitVisible(CLEARLY_VISIBLE); singleMode(); break; case CONTINUOUS: lcdUpdate((char *)"Continuous Mode", (char *)""); waitVisible(CLEARLY_VISIBLE); contionuousMode(); break; case PING_PONG: lcdUpdate((char *)"Ping Pong Mode", (char *)""); waitVisible(CLEARLY_VISIBLE); pingPongMode(); break; case PER_TEST: lcdUpdate((char *)"PER Mode", (char *)""); waitVisible(CLEARLY_VISIBLE); perTestMode(); break; case ABORT_MENU: return; } } while(getJoystickDirection() != CENTRED); GLED = YLED = LED_OFF; } return; } /****************************************************************************** * @fn singleMode * * @brief * Function for transferring one packet * * Parameters: * * @param void * * @return void * ******************************************************************************/ void singleMode(void) { char *singleMenu[] = {(char *)" Send?"}; BYTE sendBuffer[] = "Hello"; BOOL res; while(TRUE) { if(lcdMenu(singleMenu, 1) == 0) { YLED = LED_ON; res = radioSend(sendBuffer, sizeof(sendBuffer), remoteAddr, DO_ACK); YLED = LED_OFF; if(res == TRUE) { GLED = LED_ON; lcdUpdateLine(LINE1, (char *)"OK!"); } else { GLED = LED_OFF; lcdUpdateLine(LINE1, (char *)"Failed..."); } waitVisible(CLEARLY_VISIBLE); GLED = LED_OFF; } else { // exit is selected... return; } } } /****************************************************************************** * @fn contionuousMode * * @brief * Function for transferring packets until stopped by user. * * Parameters: * * @param void * * @return void * ******************************************************************************/ void contionuousMode(void) { BO
评论
    相关推荐
    • Proteus7.12.rar
      Proteus7.12完美破解版.rar电路仿真软件很好用可以仿真单片数字模拟电路
    • VHDL 的实例程序,共44个.rar
      经典VHDL 的实例程序,共44个!要下载的尽快
    • USBtoRS232Driver.rar
      USB转串口驱动程序,可以用在笔记本电脑上,方便的通过串口给单片机下载程序!
    • 模糊控制程序.rar
      模糊PID控制程序的源码,是作业,有讲解,
    • 串口编程源代码.rar
      这是本人最近几年所编写的串行通讯的代码集,可以供大家参考学习。
    • DELTA_PLC.rar
      台达PLC Modbus协议通信dll com控件
    • hongwaigooog.rar
      单片机红外遥控最全的资料,包含很多当前电视遥控专用芯片的解码方式,C语言和汇编语言编写的解码范例程序,看完了你就会了!
    • MF500绝密.rar
      非接触式IC卡开发板源程序,包括原理图/PCB图;源程序在KEIL环境下编译,打开压缩包后直接点击PRJ文件,即可编译使用。 这是个保密文件,做Mifare one卡开发人基本上都用过到这个源代码。
    • 20078251299410.rar
      C51实用程序(45个) I/O、定时器、中断、看门狗、计数器、软件AD、VB串口、93c06驱动、24c02系列驱动、7219、20045、软件陷阱、串口中断、码值转换、AVR通讯、IIC、DS1302、DS1820、SPI、1602、12232、12864、T6963、1330、PC键、键盘输入法、智能化、飞机游戏、贪吃蛇、多级菜单实例等
    • mcudesign.rar
      单片机设计,毕业设计 16×16点阵(滚动显示)论文+程序 cdma通信系统中的接入信道部分进行仿真与分析 LED显示屏动态显示和远程监控的实现 MCS-51单片机温度控制系统 USB接口设计 毕业设计(论文)OFDM通信系统基带数据 仓库温湿度的监测系统 单片机串行通信发射机 单片机课程设计__电子密码锁报告 单片机控制交通灯 电动智能小车(完整论文 电气工程系06届毕业设计开题报告 电信运营商收入保障系统设计与实现 电子设计大赛点阵电子显示屏(A题 电子时钟 火灾自动报警系统设计 基于GSM短信模块的家庭防盗报警系统 基于GSM模块的车载防盗系统设计 TC35i 资料 基于网络的虚拟仪器测试系统 门控自动照明电路 全遥控数字音量控制的D类功率放大器 数控直流稳压电源完整论文 数字密码锁设计 数字抢答器(数字电路) 数字时钟 水箱单片机控制系统 同步电机模型的MATLAB仿真 温度监控系统的设计 用单片机控制直流电机 用单片机实现温度远程显示 智能家用电热水器控制器 智能型充电器电源和显示的设计 自动加料机控制系统