From b8cf36028990c8152a6cea86d1e5d5ffed770ea8 Mon Sep 17 00:00:00 2001 From: travisutk Date: Sun, 12 Feb 2012 17:22:05 +0000 Subject: [PATCH] Moving CCSPI reflexive jamming to its own channel. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@1088 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- firmware/apps/radios/ccspi.c | 110 +++++++++++++++++++---------------- 1 file changed, 59 insertions(+), 51 deletions(-) diff --git a/firmware/apps/radios/ccspi.c b/firmware/apps/radios/ccspi.c index 4ab98fd..6644a76 100644 --- a/firmware/apps/radios/ccspi.c +++ b/firmware/apps/radios/ccspi.c @@ -87,6 +87,64 @@ u8 ccspitrans8(u8 byte){ } +//! Reflexively jam on the present channel. +void ccspireflexjam(){ + unsigned long i; + #if defined(FIFOP) && defined(SFD) && defined(FIFO) && defined(PLED2DIR) && defined(PLED2PIN) && defined(PLED2OUT) + debugstr("Reflex jamming until reset."); + txdata(CCSPI,CCSPI_REFLEX,1); //Let the client continue its business. + while(1) { + //Wait until a packet is received + while(!SFD){ + //Has there been an overflow in the RX buffer? + if((!FIFO)&&FIFOP){ + debugstr("Clearing RX overflow"); + CLRSS; + ccspitrans8(0x08); //SFLUSHRX + SETSS; + } + } + //Turn on LED 2 (green) as signal + PLED2DIR |= PLED2PIN; + PLED2OUT &= ~PLED2PIN; + + //Put radio in TX mode + CLRSS; + ccspitrans8(0x04); + SETSS; + + //Load the jamming packet. + //Note: attempts to preload this actually slowed the jam time down from 7 to 9 bytes. + CLRSS; + ccspitrans8(CCSPI_TXFIFO); + char pkt[15] = {0x0f, 0x01, 0x08, 0x82, 0xff, 0xff, 0xff, 0xff, 0xde, 0xad, 0xbe, 0xef, 0xba, 0xbe, 0xc0}; + //char pkt[12] = {0x0c, 0x01, 0x08, 0x82, 0xff, 0xff, 0xff, 0xff, 0xde, 0xad, 0xbe, 0xef}; + for(i=0;i