aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c')
-rw-r--r--os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c b/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c
index d528718ef..2e22581ed 100644
--- a/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c
+++ b/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c
@@ -335,7 +335,11 @@ void dac_lld_put_channel(DACDriver *dacp,
case DAC_DHRM_12BIT_RIGHT_DUAL:
#endif
if (channel == 0U) {
+#if STM32_DAC_DUAL_MODE
dacp->params->dac->DHR12R1 = (uint32_t)sample;
+#else
+ *(&dacp->params->dac->DHR12R1 + dacp->params->dataoffset) = (uint32_t)sample;
+#endif
}
else {
dacp->params->dac->DHR12R2 = (uint32_t)sample;
@@ -346,7 +350,11 @@ void dac_lld_put_channel(DACDriver *dacp,
case DAC_DHRM_12BIT_LEFT_DUAL:
#endif
if (channel == 0U) {
+#if STM32_DAC_DUAL_MODE
dacp->params->dac->DHR12L1 = (uint32_t)sample;
+#else
+ *(&dacp->params->dac->DHR12L1 + dacp->params->dataoffset) = (uint32_t)sample;
+#endif
}
else {
dacp->params->dac->DHR12L2 = (uint32_t)sample;
@@ -357,10 +365,14 @@ void dac_lld_put_channel(DACDriver *dacp,
case DAC_DHRM_8BIT_RIGHT_DUAL:
#endif
if (channel == 0U) {
- dacp->params->dac->DHR8R1 = (uint32_t)sample;
+#if STM32_DAC_DUAL_MODE
+ dacp->params->dac->DHR8R1 = (uint32_t)sample;
+#else
+ *(&dacp->params->dac->DHR8R1 + dacp->params->dataoffset) = (uint32_t)sample;
+#endif
}
else {
- dacp->params->dac->DHR8R2 = (uint32_t)sample;
+ dacp->params->dac->DHR8R2 = (uint32_t)sample;
}
break;
default: