Exemple #1
0
void
nrf_config_set (nrfconfig config)
{

  int i;
  nrf_write_reg (R_SETUP_AW, R_SETUP_AW_5);
  nrf_write_reg (R_RF_CH, config->channel);


  for (i = 0; i < config->nrmacs; i++)
    {
      nrf_write_reg (R_RX_PW_P0 + i, config->maclen[i]);
      if (i == 0)
	{
	  nrf_write_reg_long (R_RX_ADDR_P0, 5, config->mac0);
	}
      else if (i == 1)
	{
	  nrf_write_reg_long (R_RX_ADDR_P1, 5, config->mac1);
	}
      else if (i > 1)
	{
	  nrf_write_reg_long (R_RX_ADDR_P0 + i, 1, config->mac2345 + i - 2);
	};
    };
  nrf_write_reg_long (R_TX_ADDR, 5, config->txmac);
  nrf_write_reg (R_EN_RXADDR, (1 << config->nrmacs) - 1);
}
Exemple #2
0
void nrf_set_tx_mac(int maclen, const uint8_t * mac){
#ifdef SAFE
    assert(maclen>=1 || maclen<=5);
    assert(mac!=NULL);
#endif
    nrf_write_reg_long(R_TX_ADDR,maclen,mac);
};
Exemple #3
0
void nrf_set_rx_mac(int pipe, int rxlen, int maclen, const uint8_t * mac){
#ifdef SAFE
    assert(maclen>=1 || maclen<=5);
    assert(rxlen>=1 || rxlen<=32);
    assert(pipe>=0 || pipe<=5);
    assert(mac!=NULL);
    if(pipe>1)
        assert(maclen==1);
#endif
    nrf_write_reg(R_RX_PW_P0+pipe,rxlen);

    nrf_write_reg_long(R_RX_ADDR_P0+pipe,maclen,mac);
    nrf_write_reg(R_EN_RXADDR, 
            nrf_read_reg(R_EN_RXADDR) | (1<<pipe)
            );
};
Exemple #4
0
void nrf_set_tx_mac(int maclen, const uint8_t * mac)
{
	nrf_write_reg_long(R_TX_ADDR,maclen,mac);
};
Exemple #5
0
void nrf_set_rx_mac(int pipe, int rxlen, int maclen, const uint8_t * mac)
{
	nrf_write_reg(R_RX_PW_P0+pipe,rxlen);
	nrf_write_reg_long(R_RX_ADDR_P0+pipe,maclen,mac);
};