Example #1
0
void
service_net ()
{
	while (interrupts > 0)
	{
		NRF_CE_lo;
		uint8_t status = NRF_ReadRegister(NRF_STATUS);
		RXEN_lo;
	        // received a packet
	        if (status & 0x40)
     	   	{                
			printf("Radio received a packet\n");
		 	readPacket();
        	} else if (status & 0x20)
        	{ // packet was sent
                	printf("Radio successfully sent the packet\n");
         		NRF_WriteRegister(NRF_STATUS, 0x10);
		} else if (status & 0x10)
         	{ // packet failed to send              
			printf("Radio failed to send the packet\n");
			NRF_WriteRegister(NRF_STATUS, 0x20);
         	}
		RXEN_hi;
		NRF_CE_hi;
		INT_Disable();
		interrupts--;
		INT_Enable();
	}
}	
Example #2
0
void NRF_DumpRegister()
{
	int i;
	int ch;
	for(i=0; i<0x18; i++)
	{
		ch = 0;
		ch = NRF_ReadRegister(i);
		TRACE2("REG 0x%02X= 0x%02X\r\n", i, ch);
	}
}	
Example #3
0
void
net_init()
{
    uint8_t addr_array[5] = {0xE7, 0xE7, 0xE7, 0xE7, 0xE7};

    RXEN_hi; // enable amp

    NRF_CE_lo;
    NRF_WriteRegister(NRF_CONFIG, 0x3C); // Enable CRC and disable TX interrupts
    NRF_WriteRegister(NRF_EN_AA, 0x0); // Disable auto ACK
    NRF_WriteRegister(NRF_EN_RXADDR, 0x3F); // Receive Pipe 0 enabled
    NRF_WriteRegister(NRF_SETUP_RETR, 0); // Retransmits
    NRF_WriteRegister(NRF_SETUP_AW, 0x03); // Address Width  (5 bytes)
    NRF_WriteRegister(NRF_RF_SETUP, bandwidth | power); // set up
    NRF_WriteRegister(NRF_RF_CH, channel); // RF Channel
    NRF_WriteRegister(NRF_RX_PW_P0, 16); // RX Payload Width
    NRF_WriteRegister(NRF_FEATURE, 0x01);

    NRF_WriteRegisterMulti(NRF_TX_ADDR, 5, addr_array);
    NRF_WriteRegisterMulti(NRF_RX_ADDR_P0, 5, addr_array);
    NRF_WriteRegister(NRF_STATUS, 0x7E); // Clear Interrupts
    NRF_SendCommand(NRF_FLUSH_TX, 0xFF);
    NRF_WriteRegister(NRF_CONFIG, 0x0E);

    recv_setup();

    NRF_WriteRegister(NRF_STATUS, 0x70); // clear radio interrupts

    uint8_t status = NRF_ReadRegister(NRF_STATUS);

    if (status == 0x0E)
    {
    	printf("Radio is ready\n");
    }
    else
    {
        printf("Radio failed to initialize\n");
    }
}
void NRF_PowerUp(void)
{
  NRF_WriteRegister(NRF_CONFIG, NRF_ReadRegister(NRF_CONFIG) | 0x02);
}
void NRF_PowerDown(void)
{
  GPIO->P[NRF_RXEN_PORT].DOUT &= ~(1 << NRF_RXEN_PIN);
  NRF_WriteRegister(NRF_CONFIG, NRF_ReadRegister(NRF_CONFIG) & (~0x02));
}