Functions | Variables

Enhanced ShockBurst Primary Receiver (PRX) example
[Projects]


This example monitors for data and writes the first byte (byte 0) of the received payloads to P0.

The example shows the minimum required setup for receiving packets from a primary transmitter (PTX) device.

The following default radio parameters are being used:

The project Enhanced ShockBurst Primary Transmitter (PTX) example can be used as a counterpart for transmitting the data.

Functions

void main ()
 NRF_ISR ()

Variables

uint8_t payload [3]

Function Documentation

void main ( void   )

Definition at line 56 of file main.c.

{
#ifdef MCU_NRF24LE1
  while(hal_clk_get_16m_source() != HAL_CLK_XOSC16M)
  {
    // Wait until 16 MHz crystal oscillator is running
  }
#endif
  
  #ifdef MCU_NRF24LU1P
  // Enable radio SPI
  RFCTL = 0x10;
  #endif

  // Set P0 as output
  P0DIR = 0;

  // Enable the radio clock
  RFCKEN = 1;

  // Enable RF interrupt
  RF = 1;
  // Enable global interrupt
  EA = 1;

  // Configure radio as primary receiver (PTX)
  hal_nrf_set_operation_mode(HAL_NRF_PRX);

  // Set payload width to 3 bytes
  hal_nrf_set_rx_payload_width((int)HAL_NRF_PIPE0, 3);

  // Power up radio
  hal_nrf_set_power_mode(HAL_NRF_PWR_UP);

  // Enable receiver
  CE_HIGH();

  for(;;){}
}
NRF_ISR (  )

Definition at line 97 of file main.c.

{
  uint8_t irq_flags;

  // Read and clear IRQ flags from radio
  irq_flags = hal_nrf_get_clear_irq_flags();

  // If data received
  if((irq_flags & (1<<(uint8_t)HAL_NRF_RX_DR)) > 0)
  {
    // Read payload
    while(!hal_nrf_rx_fifo_empty())
    {
      hal_nrf_read_rx_payload(payload);
    }

    // Write received payload[0] to port 0
    P0 = payload[0];
  }
}

Variable Documentation

uint8_t payload[3]

Definition at line 54 of file main.c.