diff --git a/lib/CustomOpenTherm/CustomOpenTherm.h b/lib/CustomOpenTherm/CustomOpenTherm.h index 8ee137b..f63c72f 100644 --- a/lib/CustomOpenTherm/CustomOpenTherm.h +++ b/lib/CustomOpenTherm/CustomOpenTherm.h @@ -45,15 +45,19 @@ public: _response = 0; } else { - while (!isReady()) { + while (true) { + process(); + + if (isReady()) { + break; + } + if (this->yieldCallback != nullptr) { this->yieldCallback(yieldArg); } else { ::yield(); } - - process(); } _response = getLastResponse();