Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: src/adc.cpp
- Revision:
- 33:6c7364ea360f
- Parent:
- 30:d8721a46ee03
- Child:
- 54:660af33fa930
diff -r 05a15c208bfb -r 6c7364ea360f src/adc.cpp
--- a/src/adc.cpp Wed Mar 06 23:37:45 2019 +0000
+++ b/src/adc.cpp Thu Aug 22 15:38:50 2019 +0000
@@ -129,9 +129,15 @@
struct displayValues dvals;
if(!raw){
- dvals.v48f = VOLTAGE_48_FACTOR*avals.v48;
- dvals.v24f = VOLTAGE_24_FACTOR*avals.v24;
- dvals.v12f = VOLTAGE_12_FACTOR*avals.v12;
+ double VOLTAGE_48_CORRECTION = VOLTAGE_TARG_VALUE/VOLTAGE_48_ACTUAL_VALUE/ADC_SCALE_FACTOR;
+ double VOLTAGE_24_CORRECTION = VOLTAGE_TARG_VALUE/VOLTAGE_24_ACTUAL_VALUE/ADC_SCALE_FACTOR;
+ double VOLTAGE_12_CORRECTION = VOLTAGE_TARG_VALUE/VOLTAGE_12_ACTUAL_VALUE/ADC_SCALE_FACTOR;
+ double VOLTAGE_48_FACTOR = 48.0*VOLTAGE_48_CORRECTION;
+ double VOLTAGE_24_FACTOR = 24.0*VOLTAGE_24_CORRECTION;
+ double VOLTAGE_12_FACTOR = 12.0*VOLTAGE_12_CORRECTION;
+ dvals.v48f = (VOLTAGE_48_FACTOR*avals.v48) - VOLTAGE_48_OFFSET;
+ dvals.v24f = (VOLTAGE_24_FACTOR*avals.v24) - VOLTAGE_24_OFFSET;
+ dvals.v12f = (VOLTAGE_12_FACTOR*avals.v12) - VOLTAGE_12_OFFSET;
// The adc results are linear above CURRENT_48_DIV_THRESH5. Only apply a linear correction to it above that threshold.
// The multiple correction factors below CURRENT_48_DIV_THRESH5 linearize the curve below CURRENT_48_DIV_THRESH5.
@@ -154,17 +160,17 @@
// The adc results are linear above CURRENT_12_DIV_THRESH5. Only apply a linear correction to it above that threshold.
// The multiple correction factors below CURRENT_12_DIV_THRESH5 linearize the curve below CURRENT_12_DIV_THRESH5.
if(abs((avals.i12-CURRENT_12_OFFSET)) > CURRENT_12_DIV_THRESH5){
- dvals.i12f = (avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR5;
+ dvals.i12f = ((avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR5)-CURRENT_12_CORRECTION5;
}else if(abs((avals.i12-CURRENT_12_OFFSET)) > CURRENT_12_DIV_THRESH4){
- dvals.i12f = (avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR4;
+ dvals.i12f = ((avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR4)-CURRENT_12_CORRECTION4;
}else if(abs((avals.i12-CURRENT_12_OFFSET)) > CURRENT_12_DIV_THRESH3){
- dvals.i12f = (avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR3;
+ dvals.i12f = ((avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR3)-CURRENT_12_CORRECTION3;
}else if(abs((avals.i12-CURRENT_12_OFFSET)) > CURRENT_12_DIV_THRESH2){
- dvals.i12f = (avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR2;
+ dvals.i12f = ((avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR2)-CURRENT_12_CORRECTION2;
}else if(abs((avals.i12-CURRENT_12_OFFSET)) > CURRENT_12_DIV_THRESH1){
- dvals.i12f = (avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR1;
+ dvals.i12f = ((avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR1)-CURRENT_12_CORRECTION1;
}else{
- dvals.i12f = (avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR0;
+ dvals.i12f = ((avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR0)-CURRENT_12_CORRECTION0;
}
}else{
dvals.v48f = 1.0*avals.v48;