9#ifndef SEMF_HARDWAREABSTRACTION_STM32_STM32ANALOGOUT_H_
10#define SEMF_HARDWAREABSTRACTION_STM32_STM32ANALOGOUT_H_
15#if defined(STM32) && defined(HAL_DAC_MODULE_ENABLED)
64 void start()
const override;
71 void stop()
const override;
72 void setValue(uint32_t value)
override;
88 void isrError(DAC_HandleTypeDef& dac);
96 uint32_t alignment(
Alignment setting)
const;
99 DAC_HandleTypeDef& m_hwHandle;
105 static constexpr Error::ClassID kSemfClassId = Error::ClassID::Stm32AnalogOut;
Interface for using DAC (Digital to Analog Converter) hardware module in interrupt mode.
LinkedQueue is an managed single linked queue implementation.
void isrError(DAC_HandleTypeDef &dac)
Sending a error signal.
static LinkedQueue< Stm32AnalogOut > * queue()
Get the list with all analog outs.
static void systemIsrError(DAC_HandleTypeDef &dac)
System-wide interrupt service routine for dac error.
Stm32AnalogOut(const Stm32AnalogOut &other)=delete
void setValue(uint32_t value) override
Writes value into hardware register. Call start to output the value.
void start() const override
Starts the hardware module (DAC) for writing DAC values to the output. Call setValue before.
Stm32AnalogOut(DAC_HandleTypeDef &hwHandle, uint32_t channel, Alignment alignment)
Constructor.
void stop() const override
virtual ~Stm32AnalogOut()=default