diff --git a/src/shared/drivers/dma/DMA.cpp b/src/shared/drivers/dma/DMA.cpp index 07679e4f915c0dc2f2223815d7261e21e59b1de5..fef96ad5672529bef0377cacdd0df0c70a2e54a3 100644 --- a/src/shared/drivers/dma/DMA.cpp +++ b/src/shared/drivers/dma/DMA.cpp @@ -499,22 +499,23 @@ void DMAStream::waitForTransferComplete() transferCompleteFlag, -1); } -bool DMAStream::timedWaitForHalfTransfer(uint64_t timeout_ns) +bool DMAStream::timedWaitForHalfTransfer(std::chrono::nanoseconds timeout_ns) { return waitForInterruptEventImpl( currentSetup.enableHalfTransferInterrupt, std::bind(&DMAStream::getHalfTransferFlagStatus, this), std::bind(&DMAStream::clearHalfTransferFlag, this), halfTransferFlag, - timeout_ns); + timeout_ns.count()); } -bool DMAStream::timedWaitForTransferComplete(uint64_t timeout_ns) +bool DMAStream::timedWaitForTransferComplete( + std::chrono::nanoseconds timeout_ns) { return waitForInterruptEventImpl( currentSetup.enableTransferCompleteInterrupt, std::bind(&DMAStream::getTransferCompleteFlagStatus, this), std::bind(&DMAStream::clearTransferCompleteFlag, this), - transferCompleteFlag, timeout_ns); + transferCompleteFlag, timeout_ns.count()); } void DMAStream::setHalfTransferCallback(std::function<void()> callback) diff --git a/src/shared/drivers/dma/DMA.h b/src/shared/drivers/dma/DMA.h index 8fda416dbd9a7b59718410b2e8fea646da569afe..754e9ba8f77d4b8a696a9beda98f261ced9c700b 100644 --- a/src/shared/drivers/dma/DMA.h +++ b/src/shared/drivers/dma/DMA.h @@ -27,6 +27,7 @@ #include <kernel/sync.h> #include <utils/TimedPollingFlag.h> +#include <chrono> #include <functional> #include <map> @@ -187,9 +188,9 @@ public: void waitForTransferComplete(); - bool timedWaitForHalfTransfer(uint64_t timeout_ns); + bool timedWaitForHalfTransfer(std::chrono::nanoseconds timeout_ns); - bool timedWaitForTransferComplete(uint64_t timeout_ns); + bool timedWaitForTransferComplete(std::chrono::nanoseconds timeout_ns); void setHalfTransferCallback(std::function<void()> callback);