From c1282ec4893254243052244a062f15372ad81993 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Tue, 30 Aug 2022 09:07:49 +0200 Subject: [PATCH] ADC/DAC: Make read/write block if there's no buffer available. --- src/AdvancedADC.cpp | 3 +++ src/AdvancedDAC.cpp | 3 +++ 2 files changed, 6 insertions(+) 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;