コード例 #1
0
/* Returns the number of retransmissions occured for the last message */
uint8_t nrf24_retransmissionCount()
{
    uint8_t rv;
    nrf24_readRegister(OBSERVE_TX,&rv,1);
    rv = rv & 0x0F;
    return rv;
}
コード例 #2
0
/* Checks if receive FIFO is empty or not */
uint8_t nrf24_rxFifoEmpty()
{
    uint8_t fifoStatus;

    nrf24_readRegister(FIFO_STATUS,&fifoStatus,1);
    
    return (fifoStatus & (1 << RX_EMPTY));
}
コード例 #3
0
ファイル: nrf24.c プロジェクト: bunneydude/DOGE
/* Checks if receive FIFO is empty or not */
uint8_t nrf24_rxFifoEmpty()
{
    uint8_t fifoStatus;

    nrf24_readRegister(NRF24L01P_REG_FIFO_STATUS, &fifoStatus, 1);

    return (fifoStatus & (1 << NRF24L01P_SHIFT_RX_EMPTY));
}
コード例 #4
0
ファイル: nrf24.c プロジェクト: bmswgnp/cheep-sync
/* init the hardware pins */
void nrf24_init() 
{
    nrf24_setupPins();
    nrf24_ce_digitalWrite(LOW);
    nrf24_csn_digitalWrite(HIGH);
    nrf24_ce_digitalWrite(HIGH);
    nrf24_config(2,32);
    //nrf24_readRegister(CONFIG,&tx1,1);
    //tx1=0;
    //nrf24_configRegister(RF_CH,2);
    //nrf24_readRegister(EN_AA,&tx1,1);
    //tx1=0;
    nrf24_configRegister(RF_CH,2);
    nrf24_readRegister(RF_CH,&tx1,1);
    tx1=0;
    nrf24_readRegister(CONFIG,&tx1,1);
    tx1=0;
    nrf24_readRegister(RX_ADDR_P0,&readData,5);
    tx1=0;
    nrf24_readRegister(RF_SETUP,&tx1,1);
    tx1=0;
    nrf24_readRegister(TX_ADDR,&readData,5);
    tx1=0;
    nrf24_configRegister(SETUP_AW,2);
    //nrf24_readRegister(SETUP_AW,&tx1,1);
    //nrf24_configRegister(DYNPD,0x00);
    //nrf24_configRegister(FEATURE,0x00);
    //nrf24_tx_address(&tx_address11);
    //copy_paste();

//	nrf_cmd(0x20, 0x12);	//on, no crc, int on RX/TX done
//	nrf_cmd(0x21, 0x00);	//no auto-acknowledge
//	nrf_cmd(0x22, 0x00);	//no RX
//	nrf_cmd(0x23, 0x02);	//5-byte address
//	nrf_cmd(0x24, 0x00);	//no auto-retransmit
//	nrf_cmd(0x26, 0x06);	//1MBps at 0dBm
//	nrf_cmd(0x27, 0x3E);	//clear various flags
//	nrf_cmd(0x3C, 0x00);	//no dynamic payloads
//	nrf_cmd(0x3D, 0x00);	//no features
//	nrf_cmd(0x31, 32);	//always RX 32 bytes
//	nrf_cmd(0x22, 0x01);	//RX on pipe 0

}
コード例 #5
0
ファイル: nrf24l01.c プロジェクト: obeny/ehal
// --------------------------------------------------------------------------
static void nrf24_debugDumpRegister(const char* name, UINT8 reg, UINT8 size, UINT8 count)
{
	BYTE buffer[NRF24_REG_SIZE_MAX];
	UINT8 i;

	printf("%s\t =", name);
	while (count--)
	{
		printf(" 0x");
		nrf24_readRegister(reg, buffer, size);
		for(i = 0; i < size; ++i)
			printf("%02X", *(buffer + i));
		++reg;
	}
	printf("\n");
}
コード例 #6
0
ファイル: nrf24l01.c プロジェクト: obeny/ehal
// --------------------------------------------------------------------------
static void nrf24_readByteRegister(UINT8 reg, BYTE *data)
{
	nrf24_readRegister(reg, data, 1);
}
コード例 #7
0
ファイル: nrf24_rx.c プロジェクト: AleksandraButrova/embox
static void nrf24_test(void) {
	uint8_t rx_address[5] = {0xA7,0x95,0xF1,0x36,0x07};
	uint8_t tx_address[5] = {0xA7,0x95,0xF1,0x36,0x06};
	//uint8_t tx_address[5] = {0x17,0x97,0xA7,0xA7,0xD7};
	uint8_t addr[10] = {0x1};
	uint8_t val = 0x17;
	uint8_t reg;
	uint8_t data_array[6];
	uint32_t counter = 0;

	spi_delay(1000000);
	/* init hardware pins */
	nrf24_init();

	if (spi_init() < 0) {
		printf("ERRRRROR SPI!\n");
	}

	/* Returned value is not correct on the first read, who knows why... */
	nrf24_readRegister(CONFIG, &reg, 1);

	nrf24_readRegister(CONFIG, &reg, 1);
	printf("CONFIG (before configured) = %x\n", reg);
	nrf24_readRegister(EN_AA, &reg, 1);
	printf("EN_AA = %x\n", reg);
	nrf24_readRegister(RF_SETUP, &reg, 1);
	printf("RF_SETUP = %x\n", reg);
	nrf24_readRegister(SETUP_AW, &reg, 1);
	printf("SETUP_AW = %x\n", reg);
	nrf24_readRegister(SETUP_RETR, &reg, 1);
	printf("SETUP_RETR = %x\n", reg);
	nrf24_readRegister(FIFO_STATUS, &reg, 1);
	printf("FIFO_STATUS = %x\n", reg);

	nrf24_readRegister(RF_CH, &reg, 1);
	printf("RF_CH = %x\n", reg);
	nrf24_writeRegister(RF_CH, &val, 1);
	nrf24_readRegister(RF_CH, &reg, 1);
	printf("RF_CH = %x\n", reg);
	val = 2;
	nrf24_writeRegister(RF_CH, &val, 1);
	nrf24_readRegister(RF_CH, &reg, 1);
	printf("RF_CH = %x\n", reg);

#if 1
	nrf24_readRegister(RX_ADDR_P0, addr, 5);
	printf("RX_ADDR_P0: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);
	nrf24_writeRegister(RX_ADDR_P0, tx_address,5);
	spi_delay(1000000);
	nrf24_readRegister(RX_ADDR_P0, addr, 5);
	printf("RX_ADDR_P0: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);
	
	spi_delay(1000000);
	nrf24_readRegister(RF_CH, &reg, 1);

	nrf24_readRegister(TX_ADDR, addr, 5);
	printf("TX_ADDR: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);
	nrf24_writeRegister(TX_ADDR, tx_address,5);
	nrf24_readRegister(TX_ADDR, addr, 5);
	printf("TX_ADDR: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);

	spi_delay(1000000);

	nrf24_readRegister(RX_ADDR_P1, addr, 5);
	printf("RX_ADDR_P1: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);
	nrf24_writeRegister(RX_ADDR_P1, rx_address,5);
	nrf24_readRegister(RX_ADDR_P1, addr, 5);
	printf("RX_ADDR_P1: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);
#endif

	/* Channel #2 , payload length: 4 */
	nrf24_config(16,6);

    nrf24_readRegister(FIFO_STATUS,&reg,1);
	printf("!> 1 FIFO_STATUS = %2X\n", reg);

	spi_delay(1000000);

	nrf24_readRegister(CONFIG, &reg, 1);
	nrf24_readRegister(CONFIG, &reg, 1);
	printf("CONFIG (after configured) = %x\n", reg);
	nrf24_readRegister(EN_AA, &reg, 1);
	printf("EN_AA = %x\n", reg);
	nrf24_readRegister(RF_SETUP, &reg, 1);
	printf("RF_SETUP = %x\n", reg);

	nrf24_readRegister(TX_ADDR, addr, 5);
	printf("TX addr is: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);
	//spi_delay(1000000);
	nrf24_readRegister(RX_ADDR_P0, addr, 5);
	printf("RX addr is: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);
	//spi_delay(1000000);
	nrf24_readRegister(RX_ADDR_P1, addr, 5);
	printf("RX_ADDR_P1 addr is: %x %x %x %x %x\n", addr[0], addr[1], addr[2], addr[3], addr[4]);
    
	nrf24_readRegister(FIFO_STATUS,&reg,1);
	printf("!!!!!!> 2 FIFO_STATUS = %2X\n", reg);

	/* Set the device addresses */
	//nrf24_tx_address(rx_address);
	//nrf24_rx_address(rx_address);

	//nrf24_ce_digitalWrite(HIGH);

	//reg = nrf24_getStatus();
	//printf("STATUS = %2X\n", reg);

	nrf24_readRegister(FIFO_STATUS,&reg,1);
	printf("!!!!!!> 3 FIFO_STATUS = %2X\n", reg);

	while(1) {
		if(nrf24_dataReady())
		{
			counter = 0;
			//reg = nrf24_getStatus();
			//printf("STATUS = %x\n", reg);
			nrf24_getData(data_array);
			printf("> ");
			printf("%2X ",data_array[0]);
			printf("%2X ",data_array[1]);
			printf("%2X ",data_array[2]);
			printf("%2X ",data_array[3]);
			printf("%2X ",data_array[4]);
			printf("%2X\r\n",data_array[5]);
			//spi_delay(1000);
		} else if (counter > 100000) {
			reg = nrf24_getStatus();
			printf("(counter > 100000) STATUS = %2X\n", reg);
			nrf24_readRegister(FIFO_STATUS,&reg,1);
			printf("(counter > 100000) FIFO_STATUS = %2X\n", reg);
		}
		counter++;
	}
}