ashad
Full Member level 6
- Joined
- Mar 28, 2006
- Messages
- 393
- Helped
- 40
- Reputation
- 80
- Reaction score
- 28
- Trophy points
- 1,308
- Location
- Trento, Italy
- Activity points
- 3,296
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
#define uchar unsigned char
sbit RF_MISO = P2^3; //say
sbit RF_MOSI = P2^2;
sbit RF_SCK = P2^1;
sbit RF_CSN = P2^0;
...
void spiWr(uchar);
uchar spiRd(void);
...
/*
*********************************************************************************************************
* Low level SPI WRITE FUNCTION
*********************************************************************************************************
*/
void spiWr(uchar dat)
{
/* software SPI, send MSB first */
static uchar i,c;
c = dat;
for(i=0;i<8;i++)
{
if((c&0x80)==0x80)
RF_MOSI = 1;
else
RF_MOSI = 0;
RF_SCK = 1;
c=c<<1;
RF_SCK = 0;
}
}
/*
*********************************************************************************************************
* Low level SPI READ FUNCTION
*********************************************************************************************************
*/
uchar spiRd(void)
{
/* software SPI read, MSB read first */
static uchar i, dat;
for(i=0;i<8;i++)
{
dat = dat<<1;
RF_SCK = 1;
if(RF_MISO)
dat = dat+1;
RF_SCK = 0;
}
return dat;
}
Which register do you mean?factory test register available
ORL SSCMODE,#$80 ; set LOOPB to 1
MOV STB,#$5A ; send $5A to SPI output
Wait:
MOV A,SCF ; SSC Status Register
JNB A.0,Wait ; wait until Transfer completed
MOV A,SRB ; receive $5A on Receive Buffer Register