diff --git a/firmware/hw_layer/adc_inputs.cpp b/firmware/hw_layer/adc_inputs.cpp index e56f79ae54..d4d413709a 100644 --- a/firmware/hw_layer/adc_inputs.cpp +++ b/firmware/hw_layer/adc_inputs.cpp @@ -53,6 +53,11 @@ float getVoltageDivided(const char *msg, adc_channel_e hwChannel DECLARE_ENGINE_ return getVoltage(msg, hwChannel PASS_ENGINE_PARAMETER_SUFFIX) * engineConfiguration->analogInputDividerCoefficient; } +// voltage in MCU universe, from zero to VDD +float getVoltage(const char *msg, adc_channel_e hwChannel DECLARE_ENGINE_PARAMETER_SUFFIX) { + return adcToVolts(getAdcValue(msg, hwChannel)); +} + AdcDevice::AdcDevice(ADCConversionGroup* hwConfig) { this->hwConfig = hwConfig; channelCount = 0; diff --git a/firmware/hw_layer/algo/adc_math.h b/firmware/hw_layer/algo/adc_math.h index 17daab6f17..e1f9ae5df6 100644 --- a/firmware/hw_layer/algo/adc_math.h +++ b/firmware/hw_layer/algo/adc_math.h @@ -11,15 +11,14 @@ #ifndef ADC_MATH_H_ #define ADC_MATH_H_ -#include "global.h" +#include "engine_configuration.h" #define ADC_MAX_VALUE 4095 #define adcToVolts(adc) ((engineConfiguration->adcVcc) / ADC_MAX_VALUE * (adc)) #define voltsToAdc(volts) ((volts) * (ADC_MAX_VALUE / (engineConfiguration->adcVcc))) -// voltage in MCU universe, from zero to VDD -#define getVoltage(msg, hwChannel) (adcToVolts(getAdcValue(msg, hwChannel))) +float getVoltage(const char *msg, adc_channel_e channel DECLARE_ENGINE_PARAMETER_SUFFIX); // DECLARE_ENGINE_PARAMETER_SUFFIX float getVoltageDivided(const char *msg, adc_channel_e channel); diff --git a/simulator/simulator/boards.cpp b/simulator/simulator/boards.cpp index 918718b814..880c794caf 100644 --- a/simulator/simulator/boards.cpp +++ b/simulator/simulator/boards.cpp @@ -19,6 +19,11 @@ int getAdcValue(const char *msg, int hwChannel) { return engine->engineState.mockAdcState.getMockAdcValue(hwChannel); } +// voltage in MCU universe, from zero to VDD +float getVoltage(const char *msg, adc_channel_e hwChannel DECLARE_ENGINE_PARAMETER_SUFFIX) { + return adcToVolts(getAdcValue(msg, hwChannel)); +} + // Board voltage, with divider coefficient accounted for float getVoltageDivided(const char *msg, adc_channel_e hwChannel DECLARE_ENGINE_PARAMETER_SUFFIX) { return getVoltage(msg, hwChannel) * engineConfiguration->analogInputDividerCoefficient;