aboutsummaryrefslogtreecommitdiffstats
path: root/source/dac.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/dac.cpp')
-rw-r--r--source/dac.cpp31
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();
}
}