[ESP8266] Added missing calls to yield

This commit is contained in:
jgromes 2020-04-01 14:01:02 +02:00
parent 9c0cd464d1
commit 7fec5e629b

View file

@ -195,6 +195,7 @@ size_t ESP8266::receive(uint8_t* data, size_t len, uint32_t timeout) {
// wait until the required number of bytes is received or until timeout // wait until the required number of bytes is received or until timeout
while((millis() - start < timeout) && (i < len)) { while((millis() - start < timeout) && (i < len)) {
yield();
while(_mod->ModuleSerial->available() > 0) { while(_mod->ModuleSerial->available() > 0) {
uint8_t b = _mod->ModuleSerial->read(); uint8_t b = _mod->ModuleSerial->read();
RADIOLIB_DEBUG_PRINT(b); RADIOLIB_DEBUG_PRINT(b);
@ -209,6 +210,7 @@ size_t ESP8266::getNumBytes(uint32_t timeout, size_t minBytes) {
// wait for available data // wait for available data
uint32_t start = millis(); uint32_t start = millis();
while(_mod->ModuleSerial->available() < (int16_t)minBytes) { while(_mod->ModuleSerial->available() < (int16_t)minBytes) {
yield();
if(millis() - start >= timeout) { if(millis() - start >= timeout) {
return(0); return(0);
} }
@ -219,6 +221,7 @@ size_t ESP8266::getNumBytes(uint32_t timeout, size_t minBytes) {
uint8_t i = 0; uint8_t i = 0;
start = millis(); start = millis();
while(_mod->ModuleSerial->available() > 0) { while(_mod->ModuleSerial->available() > 0) {
yield();
char c = _mod->ModuleSerial->read(); char c = _mod->ModuleSerial->read();
rawStr[i++] = c; rawStr[i++] = c;
if(c == ':') { if(c == ':') {