File tree Expand file tree Collapse file tree 3 files changed +27
-15
lines changed
Expand file tree Collapse file tree 3 files changed +27
-15
lines changed Original file line number Diff line number Diff line change @@ -276,39 +276,49 @@ int16_t Adafruit_ADS1X15::getLastConversionResults() {
276276
277277/* *************************************************************************/
278278/* !
279- @brief Compute volts for the given raw counts.
280-
281- @param counts the ADC reading in raw counts
279+ @brief Return the current fs range for the configured gain
282280
283- @return the ADC reading in volts
281+ @return the fsRange for the configured gain, or zero.
282+ Zero should not be possible thereby indicating error
284283*/
285284/* *************************************************************************/
286- float Adafruit_ADS1X15::computeVolts ( int16_t counts ) {
285+ float Adafruit_ADS1X15::getFsRange ( ) {
287286 // see data sheet Table 3
288- float fsRange;
289287 switch (m_gain) {
290288 case GAIN_TWOTHIRDS:
291- fsRange = 6 .144f ;
289+ return 6 .144f ;
292290 break ;
293291 case GAIN_ONE:
294- fsRange = 4 .096f ;
292+ return 4 .096f ;
295293 break ;
296294 case GAIN_TWO:
297- fsRange = 2 .048f ;
295+ return 2 .048f ;
298296 break ;
299297 case GAIN_FOUR:
300- fsRange = 1 .024f ;
298+ return 1 .024f ;
301299 break ;
302300 case GAIN_EIGHT:
303- fsRange = 0 .512f ;
301+ return 0 .512f ;
304302 break ;
305303 case GAIN_SIXTEEN:
306- fsRange = 0 .256f ;
304+ return 0 .256f ;
307305 break ;
308306 default :
309- fsRange = 0 .0f ;
307+ return 0 .0f ;
310308 }
311- return counts * (fsRange / (32768 >> m_bitShift));
309+ }
310+
311+ /* *************************************************************************/
312+ /* !
313+ @brief Compute volts for the given raw counts.
314+
315+ @param counts the ADC reading in raw counts
316+
317+ @return the ADC reading in volts
318+ */
319+ /* *************************************************************************/
320+ float Adafruit_ADS1X15::computeVolts (int16_t counts) {
321+ return counts * (getFsRange () / (32768 >> m_bitShift));
312322}
313323
314324/* *************************************************************************/
Original file line number Diff line number Diff line change @@ -66,7 +66,7 @@ constexpr uint16_t MUX_BY_CHANNEL[] = {
6666 ADS1X15_REG_CONFIG_MUX_SINGLE_1, // /< Single-ended AIN1
6767 ADS1X15_REG_CONFIG_MUX_SINGLE_2, // /< Single-ended AIN2
6868 ADS1X15_REG_CONFIG_MUX_SINGLE_3 // /< Single-ended AIN3
69- }; // /< MUX config by channel
69+ }; // /< MUX config by channel
7070
7171#define ADS1X15_REG_CONFIG_PGA_MASK (0x0E00 ) // /< PGA Mask
7272#define ADS1X15_REG_CONFIG_PGA_6_144V (0x0000 ) // /< +/-6.144V range = Gain 2/3
@@ -162,6 +162,7 @@ class Adafruit_ADS1X15 {
162162 int16_t readADC_Differential_2_3 ();
163163 void startComparator_SingleEnded (uint8_t channel, int16_t threshold);
164164 int16_t getLastConversionResults ();
165+ float getFsRange ();
165166 float computeVolts (int16_t counts);
166167 void setGain (adsGain_t gain);
167168 adsGain_t getGain ();
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ readADC_Differential_0_1 KEYWORD2
66readADC_Differential_2_3 KEYWORD2
77startComparator_SingleEnded KEYWORD2
88getLastConversionResults KEYWORD2
9+ getFsRange KEYWORD1
910computeVolts KEYWORD2
1011setGain KEYWORD2
1112getGain KEYWORD2
You can’t perform that action at this time.
0 commit comments