diff --git a/src/AdvancedADC.cpp b/src/AdvancedADC.cpp index 1d506c8..df88a18 100644 --- a/src/AdvancedADC.cpp +++ b/src/AdvancedADC.cpp @@ -86,6 +86,9 @@ bool AdvancedADC::available() { DMABuffer &AdvancedADC::read() { static DMABuffer NULLBUF; if (descr != nullptr) { + while (!available()) { + __WFI(); + } return *descr->pool->dequeue(); } return NULLBUF; diff --git a/src/AdvancedDAC.cpp b/src/AdvancedDAC.cpp index fcdd6b6..5f3cf5f 100644 --- a/src/AdvancedDAC.cpp +++ b/src/AdvancedDAC.cpp @@ -84,6 +84,9 @@ bool AdvancedDAC::available() { DMABuffer &AdvancedDAC::dequeue() { static DMABuffer NULLBUF; if (descr != nullptr) { + while (!available()) { + __WFI(); + } return *descr->pool->allocate(); } return NULLBUF;