diff --git a/libraries/AP_ADC/AP_ADC.h b/libraries/AP_ADC/AP_ADC.h index de3ed07252..8bebead3fc 100644 --- a/libraries/AP_ADC/AP_ADC.h +++ b/libraries/AP_ADC/AP_ADC.h @@ -27,7 +27,7 @@ class AP_ADC virtual void Init(AP_PeriodicProcess * scheduler = NULL) = 0; /* read one channel value */ - virtual uint16_t Ch(uint8_t ch_num) = 0; + virtual float Ch(uint8_t ch_num) = 0; /* read 6 channels values as a set, used by IMU for 3 gyros and 3 accelerometeres. diff --git a/libraries/AP_ADC/AP_ADC_ADS7844.cpp b/libraries/AP_ADC/AP_ADC_ADS7844.cpp index b319b29f7d..4a415822e9 100644 --- a/libraries/AP_ADC/AP_ADC_ADS7844.cpp +++ b/libraries/AP_ADC/AP_ADC_ADS7844.cpp @@ -162,7 +162,7 @@ void AP_ADC_ADS7844::Init( AP_PeriodicProcess * scheduler ) } // Read one channel value -uint16_t AP_ADC_ADS7844::Ch(uint8_t ch_num) +float AP_ADC_ADS7844::Ch(uint8_t ch_num) { uint16_t count; uint32_t sum; @@ -178,7 +178,7 @@ uint16_t AP_ADC_ADS7844::Ch(uint8_t ch_num) _sum[ch_num] = 0; sei(); - return sum/count; + return ((float)sum)/count; } // Read 6 channel values diff --git a/libraries/AP_ADC/AP_ADC_ADS7844.h b/libraries/AP_ADC/AP_ADC_ADS7844.h index 325bc62b51..f0a83fcf8e 100644 --- a/libraries/AP_ADC/AP_ADC_ADS7844.h +++ b/libraries/AP_ADC/AP_ADC_ADS7844.h @@ -24,7 +24,7 @@ class AP_ADC_ADS7844 : public AP_ADC void Init( AP_PeriodicProcess * scheduler ); // Read 1 sensor value - uint16_t Ch(unsigned char ch_num); + float Ch(unsigned char ch_num); // Read 6 sensors at once uint32_t Ch6(const uint8_t *channel_numbers, uint16_t *result); diff --git a/libraries/AP_ADC/AP_ADC_HIL.cpp b/libraries/AP_ADC/AP_ADC_HIL.cpp index 9b0602bd4c..5a0cb92583 100644 --- a/libraries/AP_ADC/AP_ADC_HIL.cpp +++ b/libraries/AP_ADC/AP_ADC_HIL.cpp @@ -44,7 +44,7 @@ void AP_ADC_HIL::Init( AP_PeriodicProcess * scheduler ) } // Read one channel value -uint16_t AP_ADC_HIL::Ch(unsigned char ch_num) +float AP_ADC_HIL::Ch(unsigned char ch_num) { return adcValue[ch_num]; } diff --git a/libraries/AP_ADC/AP_ADC_HIL.h b/libraries/AP_ADC/AP_ADC_HIL.h index 07c7181aaa..dee48c586c 100644 --- a/libraries/AP_ADC/AP_ADC_HIL.h +++ b/libraries/AP_ADC/AP_ADC_HIL.h @@ -32,7 +32,7 @@ class AP_ADC_HIL : public AP_ADC /// // Read the sensor, part of public AP_ADC interface - uint16_t Ch(unsigned char ch_num); + float Ch(unsigned char ch_num); /// // Read 6 sensors at once