9#ifndef SEMF_HARDWAREABSTRACTION_STM32_STM32ANALOGOUTDMA_H_
10#define SEMF_HARDWAREABSTRACTION_STM32_STM32ANALOGOUTDMA_H_
16#if defined(STM32) && defined(HAL_DAC_MODULE_ENABLED)
29 Start_DataInvalid = 0,
64 void start()
const override;
72 void stop()
const override;
73 void setData(
const uint8_t data[],
size_t dataSize)
override;
88 static void systemIsr(DAC_HandleTypeDef& dac);
93 void isrError(DAC_HandleTypeDef& dac);
99 void isr(DAC_HandleTypeDef& dac);
107 uint32_t alignment(
Alignment setting)
const;
110 DAC_HandleTypeDef& m_hwHandle;
116 const uint8_t* m_data;
120 static constexpr Error::ClassID kSemfClassId = Error::ClassID::Stm32AnalogOutDma;
Interface for using DAC (Digital to Analog Converter) hardware module in DMA (Direct Memory Access) m...
LinkedQueue is an managed single linked queue implementation.
virtual ~Stm32AnalogOutDma()=default
static void systemIsr(DAC_HandleTypeDef &dac)
System-wide interrupt service routine for dac conversion finished.
Stm32AnalogOutDma(const Stm32AnalogOutDma &other)=delete
Stm32AnalogOutDma(DAC_HandleTypeDef &hwHandle, uint32_t channel, Alignment alignment)
Constructor.
void isrError(DAC_HandleTypeDef &dac)
Sending a error signal.
void stop() const override
void setData(const uint8_t data[], size_t dataSize) override
Sets the pointer to the data memory location and its size for starting DAC later by start() function....
void isr(DAC_HandleTypeDef &dac)
Sending a error signal.
void start() const override
Starts the hardware module (DAC) for writing DAC values to the output. Call setValue before.
static LinkedQueue< Stm32AnalogOutDma > * queue()
Get the list with all analog outs.
static void systemIsrError(DAC_HandleTypeDef &dac)
System-wide interrupt service routine for dac error.