Skip to content

Commit 3096fda

Browse files
committed
🎨 (dac): Add and use interface::DACDMA for DMA usage
1 parent 44e1993 commit 3096fda

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

drivers/CoreDAC/include/CoreDAC.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
namespace leka {
1616

17-
class CoreDAC : public interface::DACBase
17+
class CoreDAC : public interface::DACDMA
1818
{
1919
public:
2020
CoreDAC(interface::STM32Hal &hal, interface::STM32HalBasicTimer &hal_timer);
@@ -24,9 +24,9 @@ class CoreDAC : public interface::DACBase
2424
void initialize() final;
2525
void terminate() final;
2626

27-
void registerDataToPlay(std::span<uint16_t> data);
27+
void registerDataToPlay(std::span<uint16_t> data) final;
2828
void registerDMACallbacks(std::function<void()> const &on_half_transfer,
29-
std::function<void()> const &on_complete_transfer);
29+
std::function<void()> const &on_complete_transfer) final;
3030

3131
void start() final;
3232
void stop() final;

include/interface/drivers/DAC.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
#pragma once
66

7+
#include <functional>
8+
#include <span>
9+
710
#include "interface/drivers/STM32Hal.h"
811

912
namespace leka::interface {
@@ -22,4 +25,14 @@ class DACBase
2225
virtual void stop() = 0;
2326
};
2427

28+
class DACDMA : public DACBase
29+
{
30+
public:
31+
virtual ~DACDMA() = default;
32+
33+
virtual void registerDataToPlay(std::span<uint16_t> data) = 0;
34+
virtual void registerDMACallbacks(std::function<void()> const &on_half_transfer,
35+
std::function<void()> const &on_complete_transfer) = 0;
36+
};
37+
2538
} // namespace leka::interface

0 commit comments

Comments
 (0)