[nRF24] Use millis for timeouts
This commit is contained in:
parent
936a39ad98
commit
aafe96faf8
1 changed files with 6 additions and 6 deletions
|
@ -88,7 +88,7 @@ int16_t nRF24::transmit(uint8_t* data, size_t len, uint8_t addr) {
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// wait until transmission is finished
|
// wait until transmission is finished
|
||||||
uint32_t start = this->mod->hal->micros();
|
uint32_t start = this->mod->hal->millis();
|
||||||
while(this->mod->hal->digitalRead(this->mod->getIrq())) {
|
while(this->mod->hal->digitalRead(this->mod->getIrq())) {
|
||||||
this->mod->hal->yield();
|
this->mod->hal->yield();
|
||||||
|
|
||||||
|
@ -98,8 +98,8 @@ int16_t nRF24::transmit(uint8_t* data, size_t len, uint8_t addr) {
|
||||||
return(RADIOLIB_ERR_ACK_NOT_RECEIVED);
|
return(RADIOLIB_ERR_ACK_NOT_RECEIVED);
|
||||||
}
|
}
|
||||||
|
|
||||||
// check timeout: 15 retries * 4ms (max Tx time as per datasheet)
|
// check timeout: 15 retries * 4ms (max Tx time as per datasheet) + 10 ms
|
||||||
if(this->mod->hal->micros() - start >= 60000) {
|
if(this->mod->hal->millis() - start >= ((15 * 4) + 10)) {
|
||||||
finishTransmit();
|
finishTransmit();
|
||||||
return(RADIOLIB_ERR_TX_TIMEOUT);
|
return(RADIOLIB_ERR_TX_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
@ -114,12 +114,12 @@ int16_t nRF24::receive(uint8_t* data, size_t len) {
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// wait for Rx_DataReady or timeout
|
// wait for Rx_DataReady or timeout
|
||||||
uint32_t start = this->mod->hal->micros();
|
uint32_t start = this->mod->hal->millis();
|
||||||
while(this->mod->hal->digitalRead(this->mod->getIrq())) {
|
while(this->mod->hal->digitalRead(this->mod->getIrq())) {
|
||||||
this->mod->hal->yield();
|
this->mod->hal->yield();
|
||||||
|
|
||||||
// check timeout: 15 retries * 4ms (max Tx time as per datasheet)
|
// check timeout: 15 retries * 4ms (max Tx time as per datasheet) + 10 ms
|
||||||
if(this->mod->hal->micros() - start >= 60000) {
|
if(this->mod->hal->millis() - start >= ((15 * 4) + 10)) {
|
||||||
standby();
|
standby();
|
||||||
clearIRQ();
|
clearIRQ();
|
||||||
return(RADIOLIB_ERR_RX_TIMEOUT);
|
return(RADIOLIB_ERR_RX_TIMEOUT);
|
||||||
|
|
Loading…
Add table
Reference in a new issue