uint8_t const verb,
uint32_t const len){
unsigned long i;
+ u8 j;
//debugstr("Chipcon SPI handler.");
case WRITE:
case POKE:
CLRSS; //Drop !SS to begin transaction.
+ j=cmddata[0];//Backup address.
for(i=0;i<len;i++)
cmddata[i]=ccspitrans8(cmddata[i]);
SETSS; //Raise !SS to end transaction.
+ cmddata[0]=j&~0x40;//Restore address.
txdata(app,verb,len);
break;
case SETUP:
SETSS;
//Flush buffer.
- //CLRSS;
- //ccspitrans8(0x08); //SFLUSHRX
- //SETSS;
+ CLRSS;
+ ccspitrans8(0x08); //SFLUSHRX
+ SETSS;
//Only should transmit length of one more than the reported
//Wait for last packet to TX.
//while(ccspi_status()&BIT3);
+
+ //Flush TX buffer.
+ CLRSS;
+ ccspitrans8(0x09); //SFLUSHTX
+ SETSS;
+
//Load the packet.
CLRSS;
//Wait for the pulse on SFD, after which the packet has been sent.
while(!SFD);
while(SFD);
-
- //Flush TX buffer.
- CLRSS;
- ccspitrans8(0x09); //SFLUSHTX
- SETSS;
-
+
txdata(app,verb,0);
#else
debugstr("Can't TX a packet with SFD and FIFOP definitions.");