📄 nrf905.c
字号:
#include <at89x52.h>
#include <absacc.h>
#include <intrins.h>
#include <NRF905.h>
void main(void)
{
init();
while(1)
{
indata();
}
}
void init(void)
{
//P1=0x3d; //00111101
//P3=0xff;
IE=0x00; //EA=1,ES=1
DIN=1;
DOUT=1;
CSN=1;
PWR_UP=0;
TXEN=0;
TRX_CE=0;
SPI_write(0x00,0x74);//0x6a);
SPI_write(0x01,0x0e);//0x0c);
SPI_write(0x02,0x44);
SPI_write(0x03,0x0c);
SPI_write(0x04,0x0c);
SPI_write(0x05,0x00);
SPI_write(0x06,0x00);
SPI_write(0x07,0x00);
SPI_write(0x08,0x40);
SPI_write(0x09,0xdf);
delayms(100);
PWR_UP=1;
TRX_CE=1;
delayms(100);
}
void indata(void)
{
uchar *p1,i;
// for(i=0;i<=15;i++)
// {
while(!DR);
p1=&add[0];
SPI_read_some(0x24,p1,12);
if((add[0]==0xff)&&(add[11]==0x40))
{
P2=0x00;
delayms(500);
P2=0xff;
delayms(200);
}
//a=SPI_read(0x24);
//add[i]=a;
// }
// SPI_write(0x20,0xa5);
// for(i=0;i<=15;i++)
// {
// if(add[i]!=i)
// _nop_();
// }
// PWR_UP=1;
// TXEN=1;
// TRX_CE=1;
// SPI_write4(0x22,0xe7,0xe7,0xe7,0xe7);
// a=SPI_read(0x10);
// delayms(100);
// PWR_UP=0;
}
void SPI_write(uchar a,uchar b)
{
SCLK=0;
CSN=0;
write(a);
write(b);
CSN=1;
}
void SPI_write4(uchar a,uchar b,uchar c,uchar d,uchar e)
{
SCLK=0;
CSN=0;
write(a);
write(b);
write(c);
write(d);
write(e);
CSN=1;
}
void write(uchar a)
{
uchar b,i;
for(i=1;i<=8;i++)
{
b=a&0x80;
if(b==0x80)
DOUT=1;
else
DOUT=0;
SCLK=1;
a<<=1;
_nop_();
SCLK=0;
}
}
uchar SPI_read(uchar a)
{
SCLK=0;
CSN=0;
write(a);
a=read();
CSN=1;
return(a);
}
SPI_read_some(uchar a,uchar *p1,uchar num)
{
SCLK=0;
CSN=0;
write(a);
while(num)
{
a=read();
*p1=a;
p1++;
num--;
}
CSN=1;
}
uchar read(void)
{
uchar i,a=0;
for(i=1;i<=8;i++)
{
a<<=1;
if(DIN==1)
a|=0x01;
SCLK=1;
_nop_();
SCLK=0;
}
return(a);
}
void delayms(uint n)
{
uint b;
while(n>0)
{
for(b=0;b<100;b++);
n--;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -