SAADC differential input setup. With EPD display.
Dependencies: GDEP015OC1 acn_nrf52_saadc adc52832_common
main.cpp@4:7dd2d8cc90ed, 2017-09-29 (annotated)
- 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?
User | Revision | Line number | New 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 | } |