[XBee] Added missing calls to yield
This commit is contained in:
parent
a7c4dd44ce
commit
eb71582a96
1 changed files with 3 additions and 0 deletions
|
@ -405,6 +405,7 @@ int16_t XBee::readApiFrame(uint8_t frameID, uint8_t codePos, uint16_t timeout) {
|
||||||
// wait until all response bytes are available (5s timeout)
|
// wait until all response bytes are available (5s timeout)
|
||||||
uint32_t start = millis();
|
uint32_t start = millis();
|
||||||
while(_mod->ModuleSerial->available() < (int16_t)numBytes) {
|
while(_mod->ModuleSerial->available() < (int16_t)numBytes) {
|
||||||
|
yield();
|
||||||
if(millis() - start >= timeout/2) {
|
if(millis() - start >= timeout/2) {
|
||||||
return(ERR_FRAME_MALFORMED);
|
return(ERR_FRAME_MALFORMED);
|
||||||
}
|
}
|
||||||
|
@ -456,6 +457,7 @@ uint16_t XBee::getNumBytes(uint32_t timeout, size_t minBytes) {
|
||||||
// wait for available data
|
// wait for available data
|
||||||
uint32_t start = millis();
|
uint32_t start = millis();
|
||||||
while((size_t)_mod->ModuleSerial->available() < minBytes) {
|
while((size_t)_mod->ModuleSerial->available() < minBytes) {
|
||||||
|
yield();
|
||||||
if(millis() - start >= timeout) {
|
if(millis() - start >= timeout) {
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
@ -466,6 +468,7 @@ uint16_t XBee::getNumBytes(uint32_t timeout, size_t minBytes) {
|
||||||
uint8_t i = 0;
|
uint8_t i = 0;
|
||||||
RADIOLIB_DEBUG_PRINT(F("reading frame length: "));
|
RADIOLIB_DEBUG_PRINT(F("reading frame length: "));
|
||||||
while(_mod->ModuleSerial->available() > 0) {
|
while(_mod->ModuleSerial->available() > 0) {
|
||||||
|
yield();
|
||||||
uint8_t b = _mod->ModuleSerial->read();
|
uint8_t b = _mod->ModuleSerial->read();
|
||||||
RADIOLIB_DEBUG_PRINT(b, HEX);
|
RADIOLIB_DEBUG_PRINT(b, HEX);
|
||||||
RADIOLIB_DEBUG_PRINT('\t');
|
RADIOLIB_DEBUG_PRINT('\t');
|
||||||
|
|
Loading…
Add table
Reference in a new issue