SAADC differential input setup. With EPD display.

Dependencies:   GDEP015OC1 acn_nrf52_saadc adc52832_common

Revision:
4:7dd2d8cc90ed
Parent:
3:884740fe7de4
Child:
5:35f9fea8fe5b
--- a/main.cpp	Fri Sep 29 09:02:34 2017 +0000
+++ b/main.cpp	Fri Sep 29 11:12:49 2017 +0000
@@ -16,44 +16,39 @@
 #include "acd_nrf52_saadc.h"
 #include "GDEP015OC1.h"
 
-#define ANALOG_PIN_P    (4)
-#define ANALOG_PIN_N    (5)
-#define PRINT           (1)
-
-#if PRINT
-    #include "nrf52_uart.h"
-    NRF52_UART uart(p25, p26, Baud9600);
-    char buffer[255];
-    #define SEND(...) {uint8_t len = sprintf(buffer, __VA_ARGS__); uart.send(buffer, len);}
-#else
-    #define SEND(...)
-#endif
+#define ANALOG_PIN_P     (4)
+#define ANALOG_PIN_N     (5)
+#define NUM_OF_DIFF_ADCs (4)
 
 SPI spi(p3, NC, p4);
 GDEP015OC1 epd = GDEP015OC1(spi, p5, p6, p7, p8);
 
 int main(void){
-    NRF52_SAADC pot(ANALOG_PIN_P+1, ANALOG_PIN_N+1);
+    NRF52_SAADC *diffADCs[NUM_OF_DIFF_ADCs];
+    /* Declare your ADCs here */
+    /* Change NUM_OF_DIFF_ADCs in the header */
+    diffADCs[0] = new NRF52_SAADC(ANALOG_PIN_P, ANALOG_PIN_N);
+    diffADCs[1] = new NRF52_SAADC(ANALOG_PIN_N, ANALOG_PIN_P);
     
-    int16_t rawData;
-    float voltage;
+    uint8_t i; 
+    float voltage[NUM_OF_DIFF_ADCs];
     char buffer[256];
     
     sprintf(buffer, "Differential ADC inputs:");
     epd.writeString(buffer, 30, 30, 0);
-    sprintf(buffer, "AIN%d and AIN%d.", ANALOG_PIN_P, ANALOG_PIN_N);
-    epd.writeString(buffer, 30, 50, 0);
     epd.writeFull();
     
-    
-    while(1){
-        rawData = pot.read();
-        voltage = rawData*(3.6/512);
-        sprintf(buffer, "ADC voltage is: %f", voltage);
-        epd.writeString(buffer, 30, 70, 0);
+    while(1){       
+        for(i=0; i<NRF52_SAADC::channelCounter; i++){
+            voltage[i] = ((float)(diffADCs[i]->read()))*(3.3/512.0);    // Convert raw data into voltage
+            sprintf(buffer, "ADC voltage is: %f", voltage[i]);
+            epd.writeString(buffer, 30, 50+i*20, 0);
+        }
         epd.write();
-        sprintf(buffer, "ADC voltage is: %f", voltage);
-        epd.writeString(buffer, 30, 70, 1);
+        for(i=0; i<NRF52_SAADC::channelCounter; i++){
+            sprintf(buffer, "ADC voltage is: %f", voltage[i]);
+            epd.writeString(buffer, 30, 50+i*20, 1);
+        }
         epd.write();
     }
 }
\ No newline at end of file