void enable_rx(void) { char i; spi_write(0x3300); //command strobe scal for(i=0;i<10;i++); spi_write(0x3100); //command strobe sfstxon for(i=0;i<10;i++); spi_write(0x3400); //enable rx INTCONbits.INT0IF=0; INTCONbits.INT0IE=1; } void Transmit(void) { int i; unsigned char temp; spi_write(0x3eff); //patable register set RF output power level for(i=0;i<44;i++) { if(i==0) { spi_write(0x3f2C); //send 14 to tx fifo single byte } else { spi_write(0x3f00 | ackStr[i]); } } spi_write(0x3300); //command strobe scal for(i=0;i<10;i++); spi_write(0x3100); //command strobe sfstxon for(i=0;i<10;i++); spi_write(0x3500); // enable tx i= 0; do{ temp = gdo0; delay_ms(3); i++; if(i>=50) { break; } }while(temp ==0 ); //asserts gdo0 when sync word has been sent i = 0; do{ temp = gdo0; delay_ms(3); i++; if(i>=50) { break; } }while(temp ==1); //deasserts at the end of the packet for(i=0;i<500;i++); spi_write(0x3b00); //sftx for(i=0;i<10;i++); //LED1 = 0; //to debug transmition delay_ms(300) ; //LED1 = 1; delay_ms(300); }