SAADC differential input setup. With EPD display.
Dependencies: GDEP015OC1 acn_nrf52_saadc adc52832_common
Diff: main.cpp
- 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