X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fapps%2Fradios%2Fccspi.c;h=83dfa37b4ca42d6e4a5b1ae16e7adc78a5228e8c;hp=d7fba81bfdacedd6afeda9e1fa84c20afff03938;hb=ed8fe6653a821e893857c9491d576b8c6dee8dad;hpb=9a334c8d47da8f96662e1fa2c424d383004ab873 diff --git a/firmware/apps/radios/ccspi.c b/firmware/apps/radios/ccspi.c index d7fba81..83dfa37 100644 --- a/firmware/apps/radios/ccspi.c +++ b/firmware/apps/radios/ccspi.c @@ -139,32 +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); - while(SFD); - delay(1000); - +#ifdef FIFOP + //Has there been an overflow? + if((!FIFO)&&FIFOP){ + debugstr("Clearing overflow"); + CLRSS; + ccspitrans8(0x08); //SFLUSHRX + SETSS; + } //Is there a packet? - if((!SFD)){ + if(FIFOP&&FIFO){ + //Wait for completion. + while(SFD); + //Get the packet. CLRSS; - //ccspitrans8(CCSPI_RXFIFO); - ccspitrans8(0x3F|0x40); - cmddata[1]=0xff; //to be replaced with length - for(i=0;i