/Designs/HOPEwireless/SW_TX_RFM02/TX_RFM02.c |
---|
0,0 → 1,109 |
/* mija 2008 |
demo for RFM01 - TX 868MHz |
PIC 16F84 |
xtal = 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,+/-90kHz |
RF_WRITE_CMD(0xA640); // 868Mhz |
RF_WRITE_CMD(0xD040); // rate/2 |
RF_WRITE_CMD(0xC823); // 4.8kbps |
RF_WRITE_CMD(0xC220); // enable bit sync |
RF_WRITE_CMD(0xC001); // close all |
j= ' '; |
while (1) |
{ |
RF_WRITE_CMD(0xC039); // start tx |
ChkSum = 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); |
} |
} |
/Designs/HOPEwireless/SW_TX_RFM02/TX_RFM02.h |
---|
0,0 → 1,7 |
#include <16F84.h> |
#FUSES NOWDT //No Watch Dog Timer |
#FUSES XT |
#use delay(clock=4000000) |
//#use rs232(baud=9600,parity=N,xmit=PIN_A3,rcv=PIN_A2,bits=8) |
/Designs/HOPEwireless/SW_TX_RFM02/TX_RFM02.hex |
---|
0,0 → 1,38 |
:1000000000308A007D280000253084000008031994 |
:10001000182801308D008C018C0B0C288D0B0B28BF |
:100020004A308C008C0B122800000000800B09283D |
:1000300000348316061283120616831606108312E6 |
:100040000614831686108312861083168615831273 |
:10005000AD2883168610831286108316061283122B |
:100060000612A60126080F3C031C5528831686108D |
:100070008312861000398C00250880398F000C0807 |
:100080000F040319482883160610831206144C28FF |
:1000900083160610831206108316861083128614A8 |
:1000A0000310A40DA50DA60A32288316861083120C |
:1000B000861083160612831206160034A60126083F |
:1000C000073C031C7C288316861583128619632837 |
:1000D000831686158312861D6828A51F742883162B |
:1000E000061183120615782883160611831206114D |
:1000F0000310A50DA60A5F28003484011F30830574 |
:100100000A3091000D3092009300940074309500F5 |
:100110006530960073309700743098000A3099006B |
:100120000D309A009B009C0020309D009E009F0097 |
:10013000A00183160108C73908388100861283128E |
:1001400086160430A400FA30A5000420A40BA328CE |
:1001500083168612831286121928CC30A500A401BA |
:1001600029209330A5006130A4002920A630A500E5 |
:100170004030A4002920D030A5004030A400292020 |
:10018000C830A5002330A4002920C230A5002030AB |
:10019000A4002920C030A5000130A400292020306F |
:1001A000A200C030A5003930A4002920A301AA3044 |
:1001B000A5005E20AA30A5005E20AA30A5005E2022 |
:1001C0002D30A5005E20D430A5005E202208A20AB2 |
:1001D0007E3C0318ED282130A2002208A000A101D6 |
:1001E00021080F3C031C022911302107840000085C |
:1001F000A400A5005E201130210784000008A30799 |
:10020000A10AF0282308A5005E20AA30A5005E20E0 |
:10021000C030A5000130A40029200430A400FA3029 |
:0C022000A5000420A40B0F29D1286300C6 |
:02400E00F93F78 |
:00000001FF |
;PIC16F84 |