X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=firmware%2Fapps%2Fradios%2Fccspi.c;h=277a44070b4327d96f7a82a441d4046e3eb21691;hb=5b89da5a9d7864784dbe4942d856f751c3758c1c;hp=cc44d4b5513789699310f13b15fe44ab5b39fedb;hpb=ba0e5551e39ee0d35f21cf42dfc8d645dfe63b79;p=goodfet diff --git a/firmware/apps/radios/ccspi.c b/firmware/apps/radios/ccspi.c index cc44d4b..277a440 100644 --- a/firmware/apps/radios/ccspi.c +++ b/firmware/apps/radios/ccspi.c @@ -139,28 +139,44 @@ void ccspi_handle_fn( uint8_t const app, txdata(app,verb,0); break; case CCSPI_RX: - #ifdef FIFOP - //Wait for any incoming packet to finish. - while(SFD); +#ifdef FIFOP + //Has there been an overflow? + if((!FIFO)&&FIFOP){ + debugstr("Clearing overflow"); + CLRSS; + ccspitrans8(0x08); //SFLUSHRX + SETSS; + } //Is there a packet? - if((!SFD)&FIFOP){ + if(FIFOP&&FIFO){ + //Wait for completion. + while(SFD); + //Get the packet. CLRSS; - ccspitrans8(CCSPI_RXFIFO); - for(i=0;i<32;i++) + ccspitrans8(CCSPI_RXFIFO | 0x40); + //ccspitrans8(0x3F|0x40); + cmddata[0]=0xff; //to be replaced with length + for(i=0;i