diff options
Diffstat (limited to 'source/dac.cpp')
-rw-r--r-- | source/dac.cpp | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/source/dac.cpp b/source/dac.cpp index 283d8a9..2116dcb 100644 --- a/source/dac.cpp +++ b/source/dac.cpp @@ -9,14 +9,12 @@ * If not, see <https://www.gnu.org/licenses/>. */ -#include "adc.hpp" // ADC::getTimerDivisor #include "dac.hpp" +#include "sclock.hpp" DACDriver *DAC::m_driver[2] = { - &DACD1, nullptr/*&DACD2*/ + &DACD1, &DACD2 }; -GPTDriver *DAC::m_timer = nullptr;//&GPTD7; -int DAC::m_timer_user_count = 0; const DACConfig DAC::m_config = { .init = 0, @@ -28,14 +26,7 @@ const DACConversionGroup DAC::m_group_config = { .num_channels = 1, .end_cb = nullptr, .error_cb = nullptr, - .trigger = 5 -}; - -const GPTConfig DAC::m_timer_config = { - .frequency = 4800000, - .callback = nullptr, - .cr2 = TIM_CR2_MMS_1, /* TRGO */ - .dier = 0 + .trigger = 5 // TIM6_TRGO }; void DAC::begin() @@ -44,28 +35,22 @@ void DAC::begin() palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_ANALOG); dacStart(m_driver[0], &m_config); - //dacStart(m_driver[1], &m_config); - //gptStart(m_timer, &m_timer_config); + dacStart(m_driver[1], &m_config); } void DAC::start(int channel, dacsample_t *buffer, size_t count) { - if (channel >= 0 && channel < 1) { + if (channel >= 0 && channel < 2) { dacStartConversion(m_driver[channel], &m_group_config, buffer, count); - - //if (m_timer_user_count == 0) - // gptStartContinuous(m_timer, ADC::getTimerDivisor()); - //m_timer_user_count++; + SClock::start(); } } void DAC::stop(int channel) { - if (channel >= 0 && channel < 1) { + if (channel >= 0 && channel < 2) { dacStopConversion(m_driver[channel]); - - //if (--m_timer_user_count == 0) - // gptStopTimer(m_timer); + SClock::stop(); } } |