From 6a4fdd9a9207f5c630d932c86e603acd2f002637 Mon Sep 17 00:00:00 2001 From: jgromes Date: Wed, 1 Apr 2020 14:02:06 +0200 Subject: [PATCH] [nRF24] Added missing calls to yield --- src/modules/nRF24/nRF24.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/nRF24/nRF24.cpp b/src/modules/nRF24/nRF24.cpp index a05d52e3..ab6cc6b6 100644 --- a/src/modules/nRF24/nRF24.cpp +++ b/src/modules/nRF24/nRF24.cpp @@ -72,6 +72,8 @@ int16_t nRF24::transmit(uint8_t* data, size_t len, uint8_t addr) { // wait until transmission is finished uint32_t start = micros(); while(digitalRead(_mod->getIrq())) { + yield(); + // check maximum number of retransmits if(getStatus(NRF24_MAX_RT)) { standby(); @@ -101,6 +103,8 @@ int16_t nRF24::receive(uint8_t* data, size_t len) { // wait for Rx_DataReady or timeout uint32_t start = micros(); while(digitalRead(_mod->getIrq())) { + yield(); + // check timeout: 15 retries * 4ms (max Tx time as per datasheet) if(micros() - start >= 60000) { standby();