From aeb91c259893aae7ec7c25ebf77750a26672207e Mon Sep 17 00:00:00 2001 From: George Beckstein Date: Thu, 30 Apr 2020 12:23:03 -0400 Subject: [PATCH] Updated default vref to be NAN. Made vref an optional constructor arg --- drivers/AnalogIn.h | 10 ++++++---- drivers/source/AnalogIn.cpp | 12 ++++++------ targets/targets.json | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/AnalogIn.h b/drivers/AnalogIn.h index 17a2a2fc1e..8fab087cdb 100644 --- a/drivers/AnalogIn.h +++ b/drivers/AnalogIn.h @@ -25,6 +25,8 @@ #include "platform/SingletonPtr.h" #include "platform/PlatformMutex.h" +#include + namespace mbed { /** \defgroup mbed-os-public Public API */ @@ -71,14 +73,14 @@ public: * * @param pinmap reference to structure which holds static pinmap. */ - AnalogIn(const PinMap &pinmap); - AnalogIn(const PinMap &&) = delete; // prevent passing of temporary objects + AnalogIn(const PinMap &pinmap, float vref = MBED_CONF_TARGET_DEFAULT_ADC_VREF); + AnalogIn(const PinMap &&, float vref = MBED_CONF_TARGET_DEFAULT_ADC_VREF) = delete; // prevent passing of temporary objects /** Create an AnalogIn, connected to the specified pin * * @param pin AnalogIn pin to connect to */ - AnalogIn(PinName pin); + AnalogIn(PinName pin, float vref = MBED_CONF_TARGET_DEFAULT_ADC_VREF); /** Read the input voltage, represented as a float in the range [0.0, 1.0] * @@ -161,7 +163,7 @@ protected: analogin_t _adc; static SingletonPtr _mutex; - float vref; + float _vref; #endif //!defined(DOXYGEN_ONLY) diff --git a/drivers/source/AnalogIn.cpp b/drivers/source/AnalogIn.cpp index 0f0529e42c..cd498f90f7 100644 --- a/drivers/source/AnalogIn.cpp +++ b/drivers/source/AnalogIn.cpp @@ -23,21 +23,21 @@ namespace mbed { SingletonPtr AnalogIn::_mutex; -AnalogIn::AnalogIn(PinName pin) : vref(MBED_CONF_TARGET_DEFAULT_ADC_VREF) + +AnalogIn::AnalogIn(PinName pin, float vref) : _vref(vref) { lock(); analogin_init(&_adc, pin); unlock(); } -AnalogIn::AnalogIn(const PinMap &pinmap) : vref(MBED_CONF_TARGET_DEFAULT_ADC_VREF) +AnalogIn::AnalogIn(const PinMap &pinmap, float vref) : _vref(vref) { lock(); analogin_init_direct(&_adc, &pinmap); unlock(); } - float AnalogIn::read() { lock(); @@ -56,17 +56,17 @@ unsigned short AnalogIn::read_u16() float AnalogIn::read_voltage() { - return (this->read() * this->vref); + return (this->read() * this->_vref); } void AnalogIn::set_reference_voltage(float vref) { - this->vref = vref; + this->_vref = vref; } float AnalogIn::get_reference_voltage(void) { - return this->vref; + return this->_vref; } } // namespace mbed diff --git a/targets/targets.json b/targets/targets.json index 44b47378fe..75cbe81df4 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -83,7 +83,7 @@ }, "default-adc-vref": { "help": "Default reference voltage for ADC (float)", - "value": "3.3f" + "value": "NAN" } } },