/*=====================================================================================================*/
static void NRF_WriteBuf( u8 WriteAddr, u8 *WriteBuf, u8 Bytes )
{
  u8 i;

  NRF_CSN = 0;
  SPI_RW(NRF_SPIx, WriteAddr);
  for(i=0; i<Bytes; i++)
    SPI_RW(NRF_SPIx, WriteBuf[i]);
  NRF_CSN = 1;
}
Ejemplo n.º 2
0
/**************************************************
Function: SPI_Read_Reg();

Description:
	Read one UINT8 from BK2421 register, 'reg'
// **************************************************/
UINT8 SPI_Read_Reg(UINT8 reg)
{
	UINT8 value;
	CSN(0);                // CSN low, initialize SPI communication...
	op_status = SPI_RW(reg);            // Select register to read from..
	value = SPI_RW(0);    // ..then read register value
	CSN(1);                // CSN high, terminate SPI communication

	return(value);        // return register value
}
Ejemplo n.º 3
0
uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes)
{
	uchar status, i;
  	CSN = 0;                    // CSN置低,开始传输数据
  	status = SPI_RW(reg);       // 选择寄存器,同时返回状态字
  	for(i=0; i<bytes; i++)
    	SPI_RW(pBuf[i]);        // 逐个字节写入nRF24L01
  	CSN = 1;                    // CSN拉高,结束数据传输
  	return(status);             // 返回状态寄存器
}
/*=====================================================================================================*/
static void NRF_ReadBuf( u8 ReadAddr, u8 *ReadBuf, u8 Bytes )
{
  u8 i = 0;

  NRF_CSN = 0;
  SPI_RW(NRF_SPIx, ReadAddr);
  for(i=0; i<Bytes; i++)
    ReadBuf[i] = SPI_RW(NRF_SPIx, 0xFF);
  NRF_CSN = 1;
}
Ejemplo n.º 5
0
unsigned char SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned uchars)
{
	unsigned char status,uchar_ctr;
	cbi(PORTC,CSN);//CSN = 0;            //SPI
	status = SPI_RW(reg);
	for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) //
	SPI_RW(*pBuf++);
	sbi(PORTC,CSN);//CSN = 1;           //SPI
	return(status);    //
}
Ejemplo n.º 6
0
uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes)
{
	uchar status, i;
  	CSN = 0;                    // CSN置低,开始传输数据
  	status = SPI_RW(reg);       // 选择寄存器,同时返回状态字
  	for(i=0; i<bytes; i++)
    	pBuf[i] = SPI_RW(0);    // 逐个字节从nRF24L01读出
  	CSN = 1;                    // CSN拉高,结束数据传输
  	return(status);             // 返回状态寄存器
}
//读寄存器
uint8_t NRF_Read_Reg(uint8_t reg)
{
    uint8_t reg_val;
    SPI_CSN_L();					 
    SPI_RW(reg);			  
    reg_val = SPI_RW(0);	  /* 读取该寄存器返回数据 */
    SPI_CSN_H();	
 
    return 	reg_val;
}
Ejemplo n.º 8
0
/////////////////////写寄存器/////////////////////////////////////////////
uchar SPI_Write_Reg(uchar reg, uchar value)
{
  uchar status;
  
  NRF_CSN0;                            // CSN low, init SPI transaction
  status = SPI_RW(reg);                        // select register
  SPI_RW(value);                              // ..and write value to it..
  NRF_CSN1;                            // CSN high again
  return(status);                             // return nRF24L01 status byte
}
Ejemplo n.º 9
0
BYTE SPI_Command(BYTE reg, BYTE value)
{
	BYTE status;

	CSN_Pin_LowSelect();
	status = SPI_RW( reg);
	SPI_RW(value);        
	CSN_Pin_HighDisable();

	return(status);       
}
Ejemplo n.º 10
0
BYTE SPI_Write_Register(BYTE reg, BYTE value)
{
	BYTE status;

	CSN_Pin_LowSelect();	
	status = SPI_RW(WRITE_REG | reg);
	SPI_RW(value);        
	CSN_Pin_HighDisable();

	return(status);       
}
Ejemplo n.º 11
0
BYTE SPI_Read_Register(BYTE reg)
{
	BYTE reg_val;

	CSN_Pin_LowSelect();
	SPI_RW(reg);
	reg_val = SPI_RW(0);    
	CSN_Pin_HighDisable();  

	return(reg_val);        
}
Ejemplo n.º 12
0
/**************************************************
Function: SPI_Write_Buf();

Description:
	Writes contents of buffer '*pBuf' to RFM73
// **************************************************/
void SPI_Write_Buf(UINT8 reg, UINT8 *pBuf, UINT8 length)
{
	UINT8 byte_ctr;

	CSN(0);                   // Set CSN low, init SPI tranaction
	op_status = SPI_RW(reg);    // Select register to write to and read status UINT8
	for(byte_ctr=0; byte_ctr<length; byte_ctr++) // then write all UINT8 in buffer(*pBuf)
		SPI_RW(*pBuf++);
	CSN(1);                 // Set CSN high again

}
Ejemplo n.º 13
0
unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value)
{
	unsigned char status;

	cbi(PORTC,CSN);//CSN = 0;                   // CSN low, init SPI transaction
	status = SPI_RW(reg);      // select register
	SPI_RW(value);             // ..and write value to it..
	sbi(PORTC,CSN);//CSN = 1;                   // CSN high again

	return(status);            // return nRF24L01 status uchar
}
Ejemplo n.º 14
0
Archivo: main.c Proyecto: nvero/fmhobby
/**************************************************
功能:读RF寄存器
**************************************************/
uint8_t SPI_Read(uint8_t reg)
{
	uint8_t reg_val;

  	RFCSN = 0;                			
  	SPI_RW(reg);            					// 选择RF寄存器
  	reg_val = SPI_RW(0);    					// 读出数据
  	RFCSN = 1;                			

  	return(reg_val);        					// 返回RF状态值
}
Ejemplo n.º 15
0
Archivo: main.c Proyecto: nvero/fmhobby
/**************************************************
功能:写RF寄存器,读RF状态值
**************************************************/
uint8_t SPI_RW_Reg(uint8_t reg, uint8_t value)
{
	uint8_t status;

  	RFCSN = 0;                   	
  	status = SPI_RW(reg);      					// 选择RF寄存器
  	SPI_RW(value);             					// 写入数据
  	RFCSN = 1;                   	

  	return(status);            					// 返回RF状态值
}
Ejemplo n.º 16
0
//写寄存器
uint8_t NRF_WriteReg(uint8_t reg, uint8_t value)
{
	uint8_t dtemp;

	SPI_CE_L;//..........
	SPI_CSN_L;
	dtemp = SPI_RW(reg);
	SPI_RW(value);
	SPI_CSN_H;
	return dtemp;
}
Ejemplo n.º 17
0
//读寄存器
uint8_t NRF_ReadReg(uint8_t reg)
{
	uint8_t dtemp;

	SPI_CE_L;//.............
	SPI_CSN_L;
	SPI_RW(reg);
	dtemp = SPI_RW(0);
	SPI_CSN_H;
	return dtemp;
}
Ejemplo n.º 18
0
/*=====================================================================================================*/
static u8 NRF_ReadReg( u8 ReadAddr )
{
  u8 ReadData;

  NRF_CSN = 0;
  SPI_RW(NRF_SPIx, ReadAddr);
  ReadData = SPI_RW(NRF_SPIx, 0xFF);
  NRF_CSN = 1;

  return ReadData;
}
Ejemplo n.º 19
0
Archivo: main.c Proyecto: nvero/fmhobby
/**************************************************
功能:把缓冲区的多字节数据写到RF寄存器
**************************************************/
uint8_t SPI_Write_Buf(uint8_t reg, uint8_t *pBuf, uint8_t bytes)
{
	uint8_t status,byte_ctr;

  	RFCSN = 0;                   		
  	status = SPI_RW(reg);    					// 选择RF寄存器
  	for(byte_ctr=0; byte_ctr<bytes; byte_ctr++) // 连接写入数据
    	SPI_RW(*pBuf++);
  	RFCSN = 1;                 			
  	return(status);          					// 返回RF状态值
}
Ejemplo n.º 20
0
uint SPI_RW_Reg(uchar reg, uchar value)
{
	uint status;
	
	CSN = 0;                   // CSN low, init SPI transaction
	status = SPI_RW(reg);      // select register
	SPI_RW(value);             // ..and write value to it..
	CSN = 1;                   // CSN high again
	
	return(status);            // return nRF24L01 status uchar
}
Ejemplo n.º 21
0
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
	uint status,uchar_ctr;
	
	CSN = 0;            //SPI使能       
	status = SPI_RW(reg);   
	for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) //
		SPI_RW(*pBuf++);
	CSN = 1;           //關閉SPI
	return(status);    // 
}
Ejemplo n.º 22
0
uint8_t iBoardRF24::write_register(uint8_t reg, uint8_t value)
{
  uint8_t status;

  csn(LOW);
  status = SPI_RW( W_REGISTER | ( REGISTER_MASK & reg ) );
  SPI_RW(value);
  csn(HIGH);

  return status;
}
Ejemplo n.º 23
0
uchar SPI_Read(uchar reg)
{
	uchar reg_val;
	
	CSN = 0;                // CSN low, initialize SPI communication...
	SPI_RW(reg);            // Select register to read from..
	reg_val = SPI_RW(0);    // ..then read registervalue
	CSN = 1;                // CSN high, terminate SPI communication
	
	return(reg_val);        // return register value
}
Ejemplo n.º 24
0
/**************************************************
  Function: SPI_Read();
  Description:
  Read one byte from nRF24L01 register, 'reg'
**************************************************/
unsigned char SPI_Read(unsigned char reg)
{
    unsigned char reg_val;
    
    nRF24L01_CSN_CLR;                // CSN low, initialize SPI communication...
    SPI_RW(reg);                     // Select register to read from..
    reg_val = SPI_RW(0);             // ..then read registervalue
    nRF24L01_CSN_SET;                // CSN high, terminate SPI communication
    
    return(reg_val);                 // return register value
}
Ejemplo n.º 25
0
/**************************************************
  Function: SPI_Write_Buf();
  Description:
  Writes contents of buffer '*pBuf' to nRF24L01
  Typically used to write TX payload, Rx/Tx address
**************************************************/
unsigned char SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes)
{
    unsigned char status,byte_ctr;
    
    nRF24L01_CSN_CLR;                   
    status = SPI_RW(reg);   
    for(byte_ctr=0; byte_ctr<bytes; byte_ctr++) 
        SPI_RW(*pBuf++);
    nRF24L01_CSN_SET;                 
    return(status);                   
}
Ejemplo n.º 26
0
/**************************************************
  Function: SPI_RW_Reg();
  Description:
  Writes value 'value' to register 'reg'
**************************************************/
unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value)
{
    unsigned char status;
    
    nRF24L01_CSN_CLR;                   // CSN low, init SPI transaction
    status = SPI_RW(reg);               // select register
    SPI_RW(value);                      // ..and write value to it..
    nRF24L01_CSN_SET;                   // CSN high again
    
    return(status);                     // return nRF24L01 status byte
}
Ejemplo n.º 27
0
/*====================================================================================================*/
static uint8_t MPU9250_ReadReg( uint8_t ReadAddr )
{
  uint8_t ReadData = 0;

  SPIx_CS_L;
  SPI_RW(SPIx, 0x80 | ReadAddr);
  ReadData = SPI_RW(SPIx, 0xFF);
  SPIx_CS_H;

  return ReadData;
}
Ejemplo n.º 28
0
unsigned char NRFLib::SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes) {
  unsigned char sstatus,i;

  digitalWrite(_csnpin, 0);
  sstatus = SPI_RW(reg);             // Select register to write to and read status unsigned char
  for(i=0;i<bytes; i++){             // then write all unsigned char in buffer(*pBuf)
    SPI_RW(*pBuf++);
  }
  digitalWrite(_csnpin, 1);
  return(sstatus);                  // return nRF24L01 status unsigned char
}
Ejemplo n.º 29
0
/*====================================================================================================*/
uint8_t MPU9250_ReadReg( uint8_t readAddr )
{
  uint8_t readData = 0;

  SPIx_CS_L();
  SPI_RW(SPIx, 0x80 | readAddr);
  readData = SPI_RW(SPIx, 0x00);
  SPIx_CS_H();

  return readData;
}
Ejemplo n.º 30
0
uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes)
{
  uchar status,byte_ctr;

  NRF_CSN0;                                   // Set CSN low, init SPI tranaction
  status = SPI_RW(reg);                               // Select register to write to and read status byte
  
  for(byte_ctr=0; byte_ctr<bytes; byte_ctr++)         // then write all byte in buffer(*pBuf)
    SPI_RW(*pBuf++);
  NRF_CSN1;                                     // Set CSN high again
  return(status);                                       // return nRF24L01 status byte
}