Esempio n. 1
0
uint8_t* nrf24_register::read_payload(uint8_t num_bytes, uint8_t *data, uint8_t *status){

 	uint8_t command = 0x61;

 	SPI_nrf.write_pin(_CSN, 0);

 	*status = spi_shift(command);
 	for(uint8_t j=0;j<num_bytes;j++){
	 	data[j] = spi_shift(0);
	}

 	SPI_nrf.write_pin(_CSN, 1);

 	return data;
}
Esempio n. 2
0
void nrf24_register::write_payload(uint8_t *data_write, uint8_t num_bytes, uint8_t *status){

 	uint8_t command = 0xA0;

 	SPI_nrf.write_pin(_CSN, 0);

 	*status = spi_shift(command);

 	for(uint8_t j=0;j<num_bytes;j++){
 		spi_shift(*data_write++);
	}

 	SPI_nrf.write_pin(_CSN, 1);

}
Esempio n. 3
0
uint8_t* nrf24_register::read_rw_address(uint8_t address, uint8_t* rw_address, uint8_t *status){

 	address &= 0x1F;

 	SPI_nrf.write_pin(_CSN, 0);

 	*status = spi_shift(address);

 	for(uint8_t i = 0; i<5; i++){
   		*rw_address = spi_shift(0x00);
		rw_address++;
	}
	rw_address -= 5;

 	SPI_nrf.write_pin(_CSN, 1);

 	return rw_address;
}
Esempio n. 4
0
void nrf24_register::write_register(uint8_t address, uint8_t data, uint8_t *status){

 	address &= 0x1F;
 	address += 0x20;

 	SPI_nrf.write_pin(_CSN, 0);

 	*status = spi_shift(address);
  	SPI_nrf.spi_shift(data);

 	SPI_nrf.write_pin(_CSN, 1);
 
}
Esempio n. 5
0
void nrf24_register::write_buffer(uint8_t address, uint8_t *buffer, uint8_t num_bytes, uint8_t *status){

	uint8_t i = 0;

	address &= 0x1F;
	address += 0x20;

	SPI_nrf.write_pin(_CSN, 0);

	*status = spi_shift(address);

	for(i = 0; i<num_bytes; i++){
		SPI_nrf.spi_shift(buffer[i]);
	}

	SPI_nrf.write_pin(_CSN, 1);
}
Esempio n. 6
0
void nrf24_register::set_rw_address(uint8_t address, uint8_t *data, uint8_t num_bytes, uint8_t *status){

	address &= 0x1F;
 	address += 0x20;

 	SPI_nrf.write_pin(_CSN, 0);

 	*status = spi_shift(address);

 	for(uint8_t i = 0; i<num_bytes; i++){
 		SPI_nrf.spi_shift(*data);
		data++;

	}

 	SPI_nrf.write_pin(_CSN, 1);

}
Esempio n. 7
0
uint8_t spi_transfer(uint8_t data)
{
	return spi_shift(data);
}