void nrf_set_mode_prx() { nrf_reg_buf buf; nrf_set_power(0); // PWR OFF nrf_read_reg(NRF_REG_CONFIG, &buf); nrf_set_reg_field(NRF_REG_CONFIG, NRF_REGF_PRIM_RX, &buf, NRF_MODE_PRX); nrf_set_reg_field(NRF_REG_CONFIG, NRF_REGF_MASK_TX_DS, &buf, 1); nrf_set_reg_field(NRF_REG_CONFIG, NRF_REGF_MASK_RX_DR, &buf, 0); nrf_write_reg(NRF_REG_CONFIG, &buf); nrf_set_power(1); // PWR ON }
int main(void) { dbg_init(); dbg_set(0xA); uart_rb_init(); uart_printf_init(); nrf_init(rxbuf); nrf_set_channel(115); nrf_set_power(NRF_CFG_RF_GAIN_M12); nrf_enable_pipe(0, tx_addr); sei(); while (1) { transmitter_loop(); } }
void recv_config(void) { uint8_t cmd, data; cmd = uart_rb_rx(); switch (cmd) { case CMD_CCHAN: nrf_set_channel(uart_rb_rx()); printf("%02x", nrf_regrd(NRF_REG_RF_CH)); break; case CMD_CPWR: nrf_set_power(uart_rb_rx() << NRF_BIT_RF_PWR21); printf("%02x", (nrf_regrd(NRF_REG_RF_SETUP) >> NRF_BIT_RF_PWR21) & 0x3); break; default: break; } return; }