[RF69] Added missing RF switch control
This commit is contained in:
parent
05f1e998d7
commit
b68bd2f9f9
1 changed files with 15 additions and 2 deletions
|
@ -160,16 +160,25 @@ int16_t RF69::receive(uint8_t* data, size_t len) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t RF69::sleep() {
|
int16_t RF69::sleep() {
|
||||||
|
// set RF switch (if present)
|
||||||
|
_mod->setRfSwitchState(LOW, LOW);
|
||||||
|
|
||||||
// set module to sleep
|
// set module to sleep
|
||||||
return(setMode(RF69_SLEEP));
|
return(setMode(RF69_SLEEP));
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t RF69::standby() {
|
int16_t RF69::standby() {
|
||||||
|
// set RF switch (if present)
|
||||||
|
_mod->setRfSwitchState(LOW, LOW);
|
||||||
|
|
||||||
// set module to standby
|
// set module to standby
|
||||||
return(setMode(RF69_STANDBY));
|
return(setMode(RF69_STANDBY));
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t RF69::transmitDirect(uint32_t frf) {
|
int16_t RF69::transmitDirect(uint32_t frf) {
|
||||||
|
// set RF switch (if present)
|
||||||
|
_mod->setRfSwitchState(LOW, HIGH);
|
||||||
|
|
||||||
// user requested to start transmitting immediately (required for RTTY)
|
// user requested to start transmitting immediately (required for RTTY)
|
||||||
if(frf != 0) {
|
if(frf != 0) {
|
||||||
_mod->SPIwriteRegister(RF69_REG_FRF_MSB, (frf & 0xFF0000) >> 16);
|
_mod->SPIwriteRegister(RF69_REG_FRF_MSB, (frf & 0xFF0000) >> 16);
|
||||||
|
@ -188,6 +197,9 @@ int16_t RF69::transmitDirect(uint32_t frf) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t RF69::receiveDirect() {
|
int16_t RF69::receiveDirect() {
|
||||||
|
// set RF switch (if present)
|
||||||
|
_mod->setRfSwitchState(HIGH, LOW);
|
||||||
|
|
||||||
// activate direct mode
|
// activate direct mode
|
||||||
int16_t state = directMode();
|
int16_t state = directMode();
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
@ -239,7 +251,7 @@ int16_t RF69::startReceive() {
|
||||||
clearIRQFlags();
|
clearIRQFlags();
|
||||||
|
|
||||||
// set RF switch (if present)
|
// set RF switch (if present)
|
||||||
_mod->setRfSwitchState(false);
|
_mod->setRfSwitchState(HIGH, LOW);
|
||||||
|
|
||||||
// set mode to receive
|
// set mode to receive
|
||||||
state = _mod->SPIsetRegValue(RF69_REG_OCP, RF69_OCP_ON | RF69_OCP_TRIM);
|
state = _mod->SPIsetRegValue(RF69_REG_OCP, RF69_OCP_ON | RF69_OCP_TRIM);
|
||||||
|
@ -318,7 +330,7 @@ int16_t RF69::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// set RF switch (if present)
|
// set RF switch (if present)
|
||||||
_mod->setRfSwitchState(true);
|
_mod->setRfSwitchState(LOW, HIGH);
|
||||||
|
|
||||||
// set mode to transmit
|
// set mode to transmit
|
||||||
state = setMode(RF69_TX);
|
state = setMode(RF69_TX);
|
||||||
|
@ -330,6 +342,7 @@ int16_t RF69::readData(uint8_t* data, size_t len) {
|
||||||
// set mode to standby
|
// set mode to standby
|
||||||
int16_t state = standby();
|
int16_t state = standby();
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// get packet length
|
// get packet length
|
||||||
size_t length = len;
|
size_t length = len;
|
||||||
if(len == RF69_MAX_PACKET_LENGTH) {
|
if(len == RF69_MAX_PACKET_LENGTH) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue