BAP TUDelft / ADS1015_v2
Revision:
2:2bf91fd23a1a
Parent:
1:c1ddf7c2d65b
Child:
3:6ee79a02cf4c
--- a/ADS1015.cpp	Wed Jun 27 09:11:26 2018 +0000
+++ b/ADS1015.cpp	Mon Jul 02 08:42:39 2018 +0000
@@ -1,11 +1,11 @@
 #include "mbed.h"
 #include "ADS1015.h"
 
-#define CONFIG 0x81E3 | AD1015_CONFIG_FSR_4096
+#define CONFIG 0x81E3
 
-double getSample(I2C* i2c_plate, uint8_t ADC_address, uint16_t sensor_address)
+double getDifSample(I2C* i2c_plate, uint8_t ADC_address, uint16_t sensor_address)
 {
-    sensor_address = CONFIG | sensor_address;
+    sensor_address = CONFIG | sensor_address | AD1015_CONFIG_FSR_4096;
     
     startSingleShotConversion(i2c_plate, ADC_address, sensor_address);
     wait_ms(0.1);
@@ -15,6 +15,33 @@
     return readConversionResult(i2c_plate, ADC_address, sensor_address);
 }
 
+double getSingleSample(I2C* i2c_plate, uint8_t ADC_address, uint16_t channel)
+{    
+    uint16_t config = CONFIG | ADS1015_REG_CONFIG_OS_SINGLE | AD1015_CONFIG_FSR_6144;
+    
+    switch (channel) {
+        case (0):
+            config |= ADS1015_REG_CONFIG_MUX_SINGLE_0;
+            break;
+        case (1):
+            config |= ADS1015_REG_CONFIG_MUX_SINGLE_1;
+            break;
+        case (2):
+            config |= ADS1015_REG_CONFIG_MUX_SINGLE_2;
+            break;
+        case (3):
+            config |= ADS1015_REG_CONFIG_MUX_SINGLE_3;
+            break;
+    }
+    
+    startSingleShotConversion(i2c_plate, ADC_address, config);
+    wait_ms(0.1);
+    startSingleShotConversion(i2c_plate, ADC_address, config);
+    wait_ms(0.3);    
+    
+    return readConversionResult(i2c_plate, ADC_address, config);
+}
+
 void startSingleShotConversion(I2C* i2c_plate, uint8_t address, uint16_t config)
 {
     char txbuf[10];