From bcd48f2f471e0c9536b30b0be7ead0f62f163f5a Mon Sep 17 00:00:00 2001 From: TMRh20 Date: Wed, 19 Mar 2014 20:47:37 -0600 Subject: [PATCH] Fix: Standby after regular write cmd Realized that the normal write command should always drop to standby-I mode immediately since the FIFO cannot be filled using this method, and TX will be complete. --- RF24.cpp | 2 ++ RF24.h | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/RF24.cpp b/RF24.cpp index 5ef039d..d2b4025 100644 --- a/RF24.cpp +++ b/RF24.cpp @@ -455,6 +455,8 @@ bool RF24::write( const void* buf, uint8_t len ) //If autoAck is ON, a payload has to be written prior to reading a payload, else write after reading a payload while( ! ( get_status() & ( _BV(TX_DS) | _BV(MAX_RT) ))) { } + ce(LOW); //Set the radio back to STANDBY-I mode since we can only fill one buffer at a time using this method, and tx is complete + uint8_t status = write_register(STATUS,_BV(RX_DR) | _BV(TX_DS) | _BV(MAX_RT) ); //Max retries exceeded diff --git a/RF24.h b/RF24.h index 199bd88..158fc9f 100644 --- a/RF24.h +++ b/RF24.h @@ -354,7 +354,9 @@ public: * the manufacturer to drop the radio out of TX or STANDBY-II mode if there is * time enough between sends for the FIFOs to empty. * - * @note This does NOT need to be called when using per-payload noACK commands. + * @note This does NOT need to be called when using per-payload noACK commands, + * or when using the regular write command since it is only capable of single + * payload transmission.. * Per the datasheet, the radio will automatically engage STANDBY-I mode when * using the W_TX_PAYLOAD_NOACK command. *