$(CC) $<
clean:
rm -f *.ihx *.rel *.hex *.sym *.asm *.lst *.lnk *.map *.mem *.rst *.adb
$(CC) $<
clean:
rm -f *.ihx *.rel *.hex *.sym *.asm *.lst *.lnk *.map *.mem *.rst *.adb
cp $(objs) ../../../client/shellcode/chipcon/cc1110/
#Shellcode installed.
cp $(objs) ../../../client/shellcode/chipcon/cc1110/
#Shellcode installed.
* used, except that "unmodulated" is chosen in the "Simple RX tab". This
* results in an umodulated carrier with a frequency of approx. 2.433 GHz.
*/
* used, except that "unmodulated" is chosen in the "Simple RX tab". This
* results in an umodulated carrier with a frequency of approx. 2.433 GHz.
*/
- FSCTRL1 = 0x0A; // Frequency synthesizer control.
- FSCTRL0 = 0x00; // Frequency synthesizer control.
+ //FSCTRL1 = 0x0A; // Frequency synthesizer control.
+ //FSCTRL0 = 0x00; // Frequency synthesizer control.
+
MDMCFG4 = 0x86; // Modem configuration.
MDMCFG3 = 0x83; // Modem configuration.
MDMCFG2 = 0x30; // Modem configuration.
MDMCFG1 = 0x22; // Modem configuration.
MDMCFG0 = 0xF8; // Modem configuration.
MDMCFG4 = 0x86; // Modem configuration.
MDMCFG3 = 0x83; // Modem configuration.
MDMCFG2 = 0x30; // Modem configuration.
MDMCFG1 = 0x22; // Modem configuration.
MDMCFG0 = 0xF8; // Modem configuration.
CHANNR = 0x00; // Channel number.
DEVIATN = 0x00; // Modem deviation setting (when FSK modulation is enabled).
FREND1 = 0x56; // Front end RX configuration.
CHANNR = 0x00; // Channel number.
DEVIATN = 0x00; // Modem deviation setting (when FSK modulation is enabled).
FREND1 = 0x56; // Front end RX configuration.
PKTCTRL0 = 0x22; // Packet automation control.
ADDR = 0x00; // Device address.
PKTLEN = 0xFF; // Packet length.
PKTCTRL0 = 0x22; // Packet automation control.
ADDR = 0x00; // Device address.
PKTLEN = 0xFF; // Packet length.
/* Settings not from SmartRF® Studio. Setting both sync word registers to
* 0xAA = 0b10101010, i.e., the same as the preamble pattern. Not necessary,
* but gives control of what the radio attempts to transmit.
*/
/* Settings not from SmartRF® Studio. Setting both sync word registers to
* 0xAA = 0b10101010, i.e., the same as the preamble pattern. Not necessary,
* but gives control of what the radio attempts to transmit.
*/
- SYNC1 = 0xAA;
- SYNC0 = 0xAA;
+
+ //These sync values are better for jamming, but they break reception.
+ //SYNC1 = 0xAA;
+ //SYNC0 = 0xAA;
/* Put radio in TX.
RFST = RFST_STX;
/* Put radio in TX.
RFST = RFST_STX;
//Begin to receive.
RFST=RFST_SRX;
while(MARCSTATE!=MARC_STATE_RX);
//Begin to receive.
RFST=RFST_SRX;
while(MARCSTATE!=MARC_STATE_RX);
- //while(MARCSTATE!=MARC_STATE_RX_OVERFLOW);
-
//Fixed length
packet[i++]=PKTLEN;
//Fixed length
packet[i++]=PKTLEN;
- while(i<PKTLEN){
- while(!RFTXRXIF); //Wait for byte to be ready.
+ while(i<PKTLEN && MARCSTATE==MARC_STATE_RX){
+
+ while(MARCSTATE==MARC_STATE_RX && !RFTXRXIF); //Wait for byte to be ready.
RFTXRXIF=0; //Clear the flag.
RFTXRXIF=0; //Clear the flag.
packet[i++]=RFD; //Grab the next byte.
}
packet[i++]=RFD; //Grab the next byte.
}
//sleepMillis(10);
//RFST = RFST_SIDLE; //End receive.
}
//sleepMillis(10);
//RFST = RFST_SIDLE; //End receive.
}
void main(){
unsigned char threshold=packet[0], i=0, rssi=0;;
void main(){
unsigned char threshold=packet[0], i=0, rssi=0;;
//Disable interrupts.
RFTXRXIE=0;
//Disable interrupts.
RFTXRXIE=0;
- RFST=RFST_SIDLE;
- while(MARCSTATE!=MARC_STATE_IDLE);
+ //RFST=RFST_SIDLE;
+ //while(MARCSTATE!=MARC_STATE_IDLE);
//SYNC1=0xAA;
//SYNC0=0xAA;
//SYNC1=0xAA;
//SYNC0=0xAA;
- //RFON;
- sleepMillis(200);
- //Carrier will clear when the loop continue,
- //but we can HALT to give the host a chance to take over.
- HALT;
+ sleepMillis(200);
+ RFOFF;
- RFST = RFST_SIDLE; //End transmit.
-
- HALT;