[CC1101] Added finishTransmit
This commit is contained in:
parent
9db64292c4
commit
9dff4e709e
3 changed files with 26 additions and 12 deletions
|
@ -112,6 +112,11 @@ void loop() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clean up after transmission is finished
|
||||||
|
// this will ensure transmitter is disabled,
|
||||||
|
// RF switch is powered down etc.
|
||||||
|
radio.finishTransmit();
|
||||||
|
|
||||||
// wait a second before transmitting again
|
// wait a second before transmitting again
|
||||||
delay(1000);
|
delay(1000);
|
||||||
|
|
||||||
|
|
|
@ -113,8 +113,7 @@ int16_t CC1101::transmit(uint8_t* data, size_t len, uint8_t addr) {
|
||||||
_mod->yield();
|
_mod->yield();
|
||||||
|
|
||||||
if(_mod->micros() - start > timeout) {
|
if(_mod->micros() - start > timeout) {
|
||||||
standby();
|
finishTransmit();
|
||||||
SPIsendCommand(RADIOLIB_CC1101_CMD_FLUSH_TX);
|
|
||||||
return(RADIOLIB_ERR_TX_TIMEOUT);
|
return(RADIOLIB_ERR_TX_TIMEOUT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,19 +124,12 @@ int16_t CC1101::transmit(uint8_t* data, size_t len, uint8_t addr) {
|
||||||
_mod->yield();
|
_mod->yield();
|
||||||
|
|
||||||
if(_mod->micros() - start > timeout) {
|
if(_mod->micros() - start > timeout) {
|
||||||
standby();
|
finishTransmit();
|
||||||
SPIsendCommand(RADIOLIB_CC1101_CMD_FLUSH_TX);
|
|
||||||
return(RADIOLIB_ERR_TX_TIMEOUT);
|
return(RADIOLIB_ERR_TX_TIMEOUT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// set mode to standby
|
return(finishTransmit());
|
||||||
standby();
|
|
||||||
|
|
||||||
// flush Tx FIFO
|
|
||||||
SPIsendCommand(RADIOLIB_CC1101_CMD_FLUSH_TX);
|
|
||||||
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t CC1101::receive(uint8_t* data, size_t len) {
|
int16_t CC1101::receive(uint8_t* data, size_t len) {
|
||||||
|
@ -328,6 +320,16 @@ int16_t CC1101::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
|
||||||
return (state);
|
return (state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int16_t CC1101::finishTransmit() {
|
||||||
|
// set mode to standby to disable transmitter/RF switch
|
||||||
|
int16_t state = standby();
|
||||||
|
|
||||||
|
// flush Tx FIFO
|
||||||
|
SPIsendCommand(RADIOLIB_CC1101_CMD_FLUSH_TX);
|
||||||
|
|
||||||
|
return(state);
|
||||||
|
}
|
||||||
|
|
||||||
int16_t CC1101::startReceive() {
|
int16_t CC1101::startReceive() {
|
||||||
// set mode to standby
|
// set mode to standby
|
||||||
standby();
|
standby();
|
||||||
|
|
|
@ -656,6 +656,13 @@ class CC1101: public PhysicalLayer {
|
||||||
*/
|
*/
|
||||||
int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
|
int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Clean up after transmission is done.
|
||||||
|
|
||||||
|
\returns \ref status_codes
|
||||||
|
*/
|
||||||
|
int16_t finishTransmit() override;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Interrupt-driven receive method. GDO0 will be activated when full packet is received.
|
\brief Interrupt-driven receive method. GDO0 will be activated when full packet is received.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue