aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2018-07-26 14:33:15 +0300
committerAvi Levkovich <avi@twine-s.com>2018-07-26 14:33:15 +0300
commit4ff8fc0265f11be7b73548e36c7ee3d1debfb8e4 (patch)
treec8e137c49819152f466b40ea255cc21770bbf3bf /Software/Embedded_SW/Embedded
parent904bbb32cf379ae0819c5101f1dcdfe999c582c6 (diff)
downloadTango-4ff8fc0265f11be7b73548e36c7ee3d1debfb8e4.tar.gz
Tango-4ff8fc0265f11be7b73548e36c7ee3d1debfb8e4.zip
Calculate Dispenser Pressure in MPascal / Pascal / Bar / PSI
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/Main.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c28
2 files changed, 27 insertions, 3 deletions
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c
index ecddb8f16..3fe9a5580 100644
--- a/Software/Embedded_SW/Embedded/Main.c
+++ b/Software/Embedded_SW/Embedded/Main.c
@@ -209,7 +209,7 @@ int main(void)
IDLE_TASK_package_init();
- //ControlStart();
+ ControlStart();
BIOS_start();
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
index d3d549063..8a51bc210 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c
@@ -25,16 +25,40 @@ float DispenserPressure[MAX_SYSTEM_DISPENSERS] = {0};
float CalculateDispenserPressure (int DispenserId)
{
unsigned short data = 0;
- float temp= 0.0;
+ float temp = 0.0;
+/*
data = ADC_GetReading(DispenserIdToPressureSensorId[DispenserId]);
temp = 4096 - data;
temp *= 3;
temp *= 1000; //move to mv
temp /= 4096;
DispenserPressure[DispenserId] = 3000 - temp;
- return( DispenserPressure[DispenserId]);
+ */
+
+ float Vlow = 0.004 * 130; // 4mA*130ohm (0 Pascal)
+ float VHigh = 0.020 *130; // 20mA*130ohm (1M Pascal)
+
+ float Bits_0Pascal = Vlow * 4096 / 3; // Vlow * 4096bit / 3Vref
+ float Bits_1MPascal = VHigh * 4096 / 3; // VHigh * 4096bit / 3Vref
+
+ float a = (1 - 0) / (Bits_1MPascal - Bits_0Pascal);// Mpascal/Bits
+
+ data = ADC_GetReading(DispenserIdToPressureSensorId[DispenserId]);
+ temp = Bits_1MPascal - data;
+
+ temp = a * temp;
+
+ DispenserPressure[DispenserId] = 1 - temp; // [Mpascal] ( 1 Mpascal = 10 Bar )
+
+ //unmark one of them to convert from Mpascal to :
+ //-----------------------------------
+ //DispenserPressure[DispenserId] / = 1000000; //Pascal
+ //DispenserPressure[DispenserId] *=10; //Bar;
+ //DispenserPressure[DispenserId] *=145.0377; //PSI;
+
+ return( DispenserPressure[DispenserId]);
}