[nRF24] Minor fixes

This commit is contained in:
Andrea Guglielmini 2020-02-26 15:55:44 +01:00
parent 93981f1fcb
commit 959f8751b0
2 changed files with 10 additions and 7 deletions

View file

@ -233,14 +233,9 @@ int16_t nRF24::setFrequency(int16_t freq) {
return(ERR_INVALID_FREQUENCY);
}
// set mode to standby
int16_t state = standby();
RADIOLIB_ASSERT(state);
// set frequency
uint8_t freqRaw = freq - 2400;
state = _mod->SPIsetRegValue(NRF24_REG_RF_CH, freqRaw, 6, 0);
return(state);
return _mod->SPIsetRegValue(NRF24_REG_RF_CH, freqRaw, 6, 0);
}
int16_t nRF24::setDataRate(int16_t dataRate) {
@ -335,6 +330,7 @@ int16_t nRF24::setTransmitPipe(uint8_t* addr) {
// set Rx pipe 0 address (for ACK)
_mod->SPIwriteRegisterBurst(NRF24_REG_RX_ADDR_P0, addr, _addrWidth);
state |= _mod->SPIsetRegValue(NRF24_REG_EN_RXADDR, NRF24_P0_ON, 0, 0);
return(state);
}
@ -445,6 +441,13 @@ size_t nRF24::getPacketLength(bool update) {
}
int16_t nRF24::setCrcFiltering(bool crcOn) {
// Auto Ack needs to be disabled in order to disable CRC.
if (!crcOn) {
int16_t status = setAutoAck(false);
RADIOLIB_ASSERT(status)
}
// Disable CRC
return _mod->SPIsetRegValue(NRF24_REG_CONFIG, crcOn ? NRF24_CRC_ON : NRF24_CRC_OFF, 3, 3);
}

View file

@ -127,7 +127,7 @@
// NRF24_REG_STATUS
#define NRF24_RX_DR 0b01000000 // 6 6 Rx data ready
#define NRF24_TX_DS 0b00100000 // 5 5 Tx data sent
#define NRF24_MAX_RT 0b00010000 // 4 4 maximum number of rentransmits reached (must be cleared to continue)
#define NRF24_MAX_RT 0b00010000 // 4 4 maximum number of retransmits reached (must be cleared to continue)
#define NRF24_RX_FIFO_EMPTY 0b00001110 // 3 1 Rx FIFO is empty
#define NRF24_RX_P_NO 0b00000000 // 3 1 number of data pipe that received data
#define NRF24_TX_FIFO_FULL 0b00000001 // 0 0 Tx FIFO is full