/* mija 2008demo for RFM02 - TX 868MHzPIC 16F84xtal = 4MHz*/#include "TX_RFM02.h"//************************************************************************#define SDI PIN_B0#define SCK PIN_B1#define FSK PIN_B2#define nIRQ PIN_B3 // input for PIC#define nSEL PIN_B4//************************************************************************//unsigned int8 test[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x03b,0x3c,0x3d,0x3e,0x3f};unsigned int8 test[16]="\n\r\r\rtest\n\r\r\r ";//************************************************************************void RF_INIT(void){output_high(nSEL);output_high(SDI);output_low(SCK);input(nIRQ);}void RF_WRITE_CMD(unsigned int16 cmd){unsigned int8 i;output_low(SCK);output_low(nSEL);for (i=0;i<16;i++){output_low(SCK);if (cmd & 0x8000) output_high(SDI);else output_low(SDI);output_high(SCK);cmd <<= 1;}output_low(SCK);output_high(nSEL);}void RF_WRITE_DATA(unsigned int8 data){unsigned int8 i;for (i=0;i<8;i++){while (input(nIRQ));while (!input(nIRQ));if (data & 0x80) output_high(FSK);else output_low(FSK);data <<= 1;}}void main(){unsigned int8 i,j,ChkSum;setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);output_high(LED);delay_ms(1000);output_low(LED);RF_INIT();RF_WRITE_CMD(0xCC00);RF_WRITE_CMD(0x9361); // 868BAND,+/-90kHzRF_WRITE_CMD(0xA640); // 868MhzRF_WRITE_CMD(0xD040); // rate/2RF_WRITE_CMD(0xC823); // 4.8kbpsRF_WRITE_CMD(0xC220); // enable bit syncRF_WRITE_CMD(0xC001); // close allj= ' ';while (1){RF_WRITE_CMD(0xC039); // start txChkSum = 0;RF_WRITE_DATA(0xAA);RF_WRITE_DATA(0xAA);RF_WRITE_DATA(0xAA);RF_WRITE_DATA(0x2D);RF_WRITE_DATA(0xD4);if (j++ > '~') j = '!';test[15]=j;for (i=0;i<16;i++){RF_WRITE_DATA(test[i]);ChkSum += test[i];}RF_WRITE_DATA(ChkSum);RF_WRITE_DATA(0xAA);RF_WRITE_CMD(0xC001);delay_ms(1000);}}