Skip to content

Commit 2697be1

Browse files
committed
[DAC] Allow to enable HAL module only
Define `HAL_DAC_MODULE_ONLY` in `build_opt.h` or `hal_conf_extra.h` allow HAL DAC module usage without any usage by the core. Fixes stm32duino#697 Signed-off-by: Frederic Pillon <[email protected]>
1 parent d440df2 commit 2697be1

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

cores/arduino/stm32/analog.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ extern "C" {
4848

4949
/* Private_Variables */
5050
#if (defined(HAL_ADC_MODULE_ENABLED) && !defined(HAL_ADC_MODULE_ONLY)) ||\
51-
defined(HAL_DAC_MODULE_ENABLED)
51+
(defined(HAL_DAC_MODULE_ENABLED) && !defined(HAL_DAC_MODULE_ONLY))
5252
static PinName g_current_pin = NC;
5353
#endif
5454

@@ -298,7 +298,7 @@ uint32_t get_pwm_channel(PinName pin)
298298
}
299299
#endif /* HAL_TIM_MODULE_ENABLED && !HAL_TIM_MODULE_ONLY */
300300

301-
#ifdef HAL_DAC_MODULE_ENABLED
301+
#if defined(HAL_DAC_MODULE_ENABLED) && !defined(HAL_DAC_MODULE_ONLY)
302302
static uint32_t get_dac_channel(PinName pin)
303303
{
304304
uint32_t function = pinmap_function(pin, PinMap_DAC);
@@ -556,7 +556,8 @@ void dac_stop(PinName pin)
556556
return;
557557
}
558558
}
559-
#endif //HAL_DAC_MODULE_ENABLED
559+
#endif //HAL_DAC_MODULE_ENABLED && !HAL_DAC_MODULE_ONLY
560+
560561

561562
#if defined(HAL_ADC_MODULE_ENABLED) && !defined(HAL_ADC_MODULE_ONLY)
562563
////////////////////////// ADC INTERFACE FUNCTIONS /////////////////////////////

cores/arduino/wiring_analog.c

+5-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
extern "C" {
2424
#endif
2525

26-
#if defined(HAL_DAC_MODULE_ENABLED) || (defined(HAL_TIM_MODULE_ENABLED) && !defined(HAL_TIM_MODULE_ONLY))
26+
#if (defined(HAL_DAC_MODULE_ENABLED) && !defined(HAL_DAC_MODULE_ONLY)) ||\
27+
(defined(HAL_TIM_MODULE_ENABLED) && !defined(HAL_TIM_MODULE_ONLY))
2728
//This is the list of the IOs configured
2829
uint32_t g_anOutputPinConfigured[MAX_NB_PORT] = {0};
2930
#endif
@@ -94,12 +95,12 @@ void analogOutputInit(void)
9495
// to digital output.
9596
void analogWrite(uint32_t ulPin, uint32_t ulValue)
9697
{
97-
#if defined(HAL_DAC_MODULE_ENABLED)
98+
#if defined(HAL_DAC_MODULE_ENABLED) && !defined(HAL_DAC_MODULE_ONLY)
9899
uint8_t do_init = 0;
99100
#endif
100101
PinName p = digitalPinToPinName(ulPin);
101102
if (p != NC) {
102-
#ifdef HAL_DAC_MODULE_ENABLED
103+
#if defined(HAL_DAC_MODULE_ENABLED) && !defined(HAL_DAC_MODULE_ONLY)
103104
if (pin_in_pinmap(p, PinMap_DAC)) {
104105
if (is_pin_configured(p, g_anOutputPinConfigured) == false) {
105106
do_init = 1;
@@ -108,7 +109,7 @@ void analogWrite(uint32_t ulPin, uint32_t ulValue)
108109
ulValue = mapResolution(ulValue, _writeResolution, DACC_RESOLUTION);
109110
dac_write_value(p, ulValue, do_init);
110111
} else
111-
#endif //HAL_DAC_MODULE_ENABLED
112+
#endif //HAL_DAC_MODULE_ENABLED && !HAL_DAC_MODULE_ONLY
112113
#if defined(HAL_TIM_MODULE_ENABLED) && !defined(HAL_TIM_MODULE_ONLY)
113114
if (pin_in_pinmap(p, PinMap_PWM)) {
114115
if (is_pin_configured(p, g_anOutputPinConfigured) == false) {

cores/arduino/wiring_digital.c

+4-3
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@ void pinMode(uint32_t ulPin, uint32_t ulMode)
3232

3333
if (p != NC) {
3434
// If the pin that support PWM or DAC output, we need to turn it off
35-
#if defined(HAL_DAC_MODULE_ENABLED) || (defined(HAL_TIM_MODULE_ENABLED) && !defined(HAL_TIM_MODULE_ONLY))
35+
#if (defined(HAL_DAC_MODULE_ENABLED) && !defined(HAL_DAC_MODULE_ONLY)) ||\
36+
(defined(HAL_TIM_MODULE_ENABLED) && !defined(HAL_TIM_MODULE_ONLY))
3637
if (is_pin_configured(p, g_anOutputPinConfigured)) {
37-
#ifdef HAL_DAC_MODULE_ENABLED
38+
#if defined(HAL_DAC_MODULE_ENABLED) && !defined(HAL_DAC_MODULE_ONLY)
3839
if (pin_in_pinmap(p, PinMap_DAC)) {
3940
dac_stop(p);
4041
} else
41-
#endif //HAL_DAC_MODULE_ENABLED
42+
#endif //HAL_DAC_MODULE_ENABLED && !HAL_DAC_MODULE_ONLY
4243
#if defined(HAL_TIM_MODULE_ENABLED) && !defined(HAL_TIM_MODULE_ONLY)
4344
if (pin_in_pinmap(p, PinMap_PWM)) {
4445
pwm_stop(p);

0 commit comments

Comments
 (0)