Re: How to use DAC1 Ch2 without dual mode
Posted: Sun Apr 24, 2016 4:27 pm
I have created a ticket with a proposed patch attached.
Alexandre
Alexandre
ChibiOS Web Boards
https://forum.chibios.org/
Code: Select all
/*
* DAC driver system settings.
*/
#define STM32_DAC_DUAL_MODE FALSE
#define STM32_DAC_USE_DAC1_CH1 TRUE
#define STM32_DAC_USE_DAC1_CH2 TRUE
#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID_ANY
Code: Select all
static DACConfig dac_cfg = {
// Initial output on DAC channels.
.init = 0U,
// DAC data holding register mode.
.datamode = DAC_DHRM_8BIT_RIGHT,
// DAC control register.
.cr = 0
};
Code: Select all
dacPutChannelX(&DACD2,1,dac_out2);
Code: Select all
void dacPutChannelX(DACDriver *dacp, dacchannel_t channel, dacsample_t sample) {
osalDbgCheck(channel < (dacchannel_t)DAC_MAX_CHANNELS);
osalDbgAssert(dacp->state == DAC_READY, "invalid state");
dac_lld_put_channel(dacp, channel, sample);
}
Code: Select all
/**
* @brief Max DAC channels.
*/
#if STM32_DAC_DUAL_MODE == FALSE
#define DAC_MAX_CHANNELS 1
#else
#define DAC_MAX_CHANNELS 2
#endif
Code: Select all
dacPutChannelX(&DACD1,0,dac_out1);
dacPutChannelX(&DACD2,0,dac_out2);
Code: Select all
/**
* @brief Max DAC channels.
*/
#if STM32_DAC_DUAL_MODE == FALSE
#define DAC_MAX_CHANNELS 1
#else
#define DAC_MAX_CHANNELS 2
#endif