⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nrf905dai.c

📁 nRF905无线收发芯片驱动程序
💻 C
字号:
/*=========================================
Title:	 nrf905.c
Author:	DAI,DME@THU
Date:	2006-10-12
version: v1.0
funciton:nrf905
===========================================*/
#include <nrf905.h>
#include <comm.h>
//#include "lf2407regs.h"
#include <spisim.h>

void SetNrf905Regs()
{
	xdata byte buff[11];
	PWR=1;
	TRX_CE=0;
	TX_EN=1;

	buff[0]=W_CONFIG;
	buff[1]=0x6c;
	buff[2]=0x0e;
	buff[3]=0x44;
	buff[4]=0x04;
	buff[5]=0x04;
	buff[6]=0xe7;
	buff[7]=0xe7;
	buff[8]=0xe7;
	buff[9]=0xe7;
	buff[10]=0xde;
	//set address len and data len is 4
	SPISTE=0;
	SpiSendBuff(buff, 11);
	SPISTE=1;	
}

void GetNrf905Regs(byte *buff)
{
	byte c;
	PWR=1;
	TRX_CE=0;
	TX_EN=1;

	c=R_CONFIG;
	SPISTE=0;

	SpiSendBuff(&c,1);
	SpiRecvBuff(buff,10);
	SPISTE=1;
}


void Nrf905InterfaceInitial()
{
/*	_MCRA.bit7=0;
	_MCRC.bit6=0;
	_MCRC.bit7=0;
	
	_PADATDIR.bit15=1;
	_PEDATDIR.bit14=1;
	_PEDATDIR.bit15=1;
	
	_MCRC.bit8=0;
	
	_PFDATDIR.bit0=0;
//*/	
	PWR=1;
	TRX_CE=0;
	TX_EN=1;
	
	SpiInitial();
	
	SPISTE=1;

}
//Send the data buff (len=32)
void Nrf905SendData(byte *buff)
{
	unsigned int i=0;
	byte c;
	PWR=1;
	TRX_CE=0;
	TX_EN=1;
	DelayUs(150);
	SPISTE=0;
	c=W_TX_PAYLOAD;
	SpiSendBuff(&c,1);
	SpiSendBuff(buff,RT_DATA_LEN);
	SPISTE=1;

	TX_EN=1;TRX_CE=1;	
	while(!DR)
	{ 
		if(i++==0xfff0) 
		break;
	}
	TRX_CE=0;
	TX_EN=0;
}
//recv the data to buff(len=32)
void Nrf905RecvData(byte *buff)
{	
	byte c;
	PWR=1;
	TRX_CE=0;
	TX_EN=0;
	DelayUs(150);
	SPISTE=0;
	c=R_RX_PAYLOAD;
	SpiSendBuff(&c,1);
	SpiRecvBuff(buff,RT_DATA_LEN);
	SPISTE=1;
}

void SetNrf905RecvMode()
{
	PWR=1;
	TRX_CE=1;
	TX_EN=0;
}


void SetNrf905TxAddr(byte *buff)
{
	byte c;
	PWR=1;
	TRX_CE=0;
	TX_EN=0;

	c=W_TX_ADDRESS;
	SPISTE=0;
	SpiSendBuff(&c,1);
	SpiSendBuff(buff, 4);
	SPISTE=1;

}

void GetNrf905TxAddr(byte *buff)
{
	byte c;
	PWR=1;
	TRX_CE=0;
	TX_EN=0;

	c=R_TX_ADDRESS;

	SPISTE=0;	
	SpiSendBuff(&c, 1);
	SpiRecvBuff(buff, 4);
	SPISTE=1;


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -