SAADC differential input setup. With EPD display.

Dependencies:   GDEP015OC1 acn_nrf52_saadc adc52832_common

Committer:
jurica238814
Date:
Fri Sep 29 11:12:49 2017 +0000
Revision:
4:7dd2d8cc90ed
Parent:
3:884740fe7de4
Child:
5:35f9fea8fe5b
Example with multiple differential ADC inputs.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jurica238814 0:04520242cfef 1 /*
jurica238814 0:04520242cfef 2 * Example to demonstrate usage of the nrf52's SAADC in differential working\
jurica238814 0:04520242cfef 3 * mode.
jurica238814 0:04520242cfef 4 *
jurica238814 0:04520242cfef 5 * Made by Jurica Resetar @ aconno
jurica238814 0:04520242cfef 6 * jurica_resetar@yahoo.com
jurica238814 0:04520242cfef 7 * More info @ aconno.de
jurica238814 0:04520242cfef 8 *
jurica238814 0:04520242cfef 9 * All rights reserved
jurica238814 0:04520242cfef 10 *
jurica238814 0:04520242cfef 11 */
jurica238814 0:04520242cfef 12
jurica238814 0:04520242cfef 13
jurica238814 0:04520242cfef 14
jurica238814 0:04520242cfef 15 #include "mbed.h"
jurica238814 0:04520242cfef 16 #include "acd_nrf52_saadc.h"
jurica238814 2:49dab8d9637a 17 #include "GDEP015OC1.h"
jurica238814 1:41e296b93414 18
jurica238814 4:7dd2d8cc90ed 19 #define ANALOG_PIN_P (4)
jurica238814 4:7dd2d8cc90ed 20 #define ANALOG_PIN_N (5)
jurica238814 4:7dd2d8cc90ed 21 #define NUM_OF_DIFF_ADCs (4)
jurica238814 0:04520242cfef 22
jurica238814 2:49dab8d9637a 23 SPI spi(p3, NC, p4);
jurica238814 2:49dab8d9637a 24 GDEP015OC1 epd = GDEP015OC1(spi, p5, p6, p7, p8);
jurica238814 0:04520242cfef 25
jurica238814 0:04520242cfef 26 int main(void){
jurica238814 4:7dd2d8cc90ed 27 NRF52_SAADC *diffADCs[NUM_OF_DIFF_ADCs];
jurica238814 4:7dd2d8cc90ed 28 /* Declare your ADCs here */
jurica238814 4:7dd2d8cc90ed 29 /* Change NUM_OF_DIFF_ADCs in the header */
jurica238814 4:7dd2d8cc90ed 30 diffADCs[0] = new NRF52_SAADC(ANALOG_PIN_P, ANALOG_PIN_N);
jurica238814 4:7dd2d8cc90ed 31 diffADCs[1] = new NRF52_SAADC(ANALOG_PIN_N, ANALOG_PIN_P);
jurica238814 2:49dab8d9637a 32
jurica238814 4:7dd2d8cc90ed 33 uint8_t i;
jurica238814 4:7dd2d8cc90ed 34 float voltage[NUM_OF_DIFF_ADCs];
jurica238814 2:49dab8d9637a 35 char buffer[256];
jurica238814 1:41e296b93414 36
jurica238814 2:49dab8d9637a 37 sprintf(buffer, "Differential ADC inputs:");
jurica238814 2:49dab8d9637a 38 epd.writeString(buffer, 30, 30, 0);
jurica238814 2:49dab8d9637a 39 epd.writeFull();
jurica238814 2:49dab8d9637a 40
jurica238814 4:7dd2d8cc90ed 41 while(1){
jurica238814 4:7dd2d8cc90ed 42 for(i=0; i<NRF52_SAADC::channelCounter; i++){
jurica238814 4:7dd2d8cc90ed 43 voltage[i] = ((float)(diffADCs[i]->read()))*(3.3/512.0); // Convert raw data into voltage
jurica238814 4:7dd2d8cc90ed 44 sprintf(buffer, "ADC voltage is: %f", voltage[i]);
jurica238814 4:7dd2d8cc90ed 45 epd.writeString(buffer, 30, 50+i*20, 0);
jurica238814 4:7dd2d8cc90ed 46 }
jurica238814 2:49dab8d9637a 47 epd.write();
jurica238814 4:7dd2d8cc90ed 48 for(i=0; i<NRF52_SAADC::channelCounter; i++){
jurica238814 4:7dd2d8cc90ed 49 sprintf(buffer, "ADC voltage is: %f", voltage[i]);
jurica238814 4:7dd2d8cc90ed 50 epd.writeString(buffer, 30, 50+i*20, 1);
jurica238814 4:7dd2d8cc90ed 51 }
jurica238814 2:49dab8d9637a 52 epd.write();
jurica238814 0:04520242cfef 53 }
jurica238814 0:04520242cfef 54 }