![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Prototyp V2
Dependencies: PM2_Libary
Diff: mapping.cpp
- Revision:
- 54:86a90ce4e412
- Parent:
- 49:c2ebc11520f9
--- a/mapping.cpp Wed Apr 20 08:35:47 2022 +0200 +++ b/mapping.cpp Wed Apr 20 08:58:46 2022 +0200 @@ -1,32 +1,13 @@ -//pow function is here so we dont have to use the math.h library -//it takes 2 arguments the base can be any negative or positive floating point number the power has to be a hos to be an "integer" defined as a double -double powerx(double base, double pow2){ - double result = -1; - double power = pow2; - double basis = base; - result = 1; - //handling negative exponents - if(power<0){ - for(double i=1; i<=(power*(-1.0)); i++) { - result *= basis; - } - result = 1.0/result; - } - //handling positive exponents - else{ - for(double i=1; i<=power; i++){ - result *= basis;}} - - return result; - } +#include "math.h" double mapping(float adc_value_mV){ double distance = 0.0f; //distance in mm double infY =360 , supY = 2360; //Window for sensor values double voltage_mV = adc_value_mV; - double p1 = -1.127*powerx(10,-14), p2 = 8.881*powerx(10,-11), p3 = -2.76*powerx(10,-7), p4 = 0.0004262, p5 = -0.3363, p6 = 120.1 ; //faktoren für polynomkurve -> von matlab exportiert + double p1 = -1.127 * pow(10, -14), p2 = 8.881 * pow(10, -11), p3 = -2.76 * pow(10, -7), p4 = 0.0004262, p5 = -0.3363, p6 = 120.1 ; //faktoren für polynomkurve -> von matlab exportiert if(voltage_mV > infY && voltage_mV < supY){ - distance = p1*powerx(voltage_mV,5) + p2*powerx(voltage_mV,4) + p3*powerx(voltage_mV,3) + p4*powerx(voltage_mV,2) + p5*voltage_mV + p6; + distance = p1 * pow(voltage_mV, 5) + p2 * pow(voltage_mV, 4) + p3 * pow(voltage_mV, 3) + p4 * pow(voltage_mV, 2) + p5 * voltage_mV + p6; } return (distance); } +