aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2019-08-15 09:28:24 +0300
committerAvi Levkovich <avi@twine-s.com>2019-08-15 09:28:24 +0300
commit04db0ce68722b5c8cd87fe6142298c8a1de4f061 (patch)
tree5ada91e8cba0fb8533e979267909a28b58c3c4cf /Software/Embedded_SW/Embedded
parent5a03c18cdb77bcf2da2273d174ae47bb313e1e9f (diff)
downloadTango-04db0ce68722b5c8cd87fe6142298c8a1de4f061.tar.gz
Tango-04db0ce68722b5c8cd87fe6142298c8a1de4f061.zip
update the pitot function toget pressure with the new orifice
and sensor. + stubs
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c33
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c14
3 files changed, 40 insertions, 9 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c
index 89328402b..3e72021b9 100644
--- a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c
+++ b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c
@@ -68,6 +68,7 @@ void ADCAcquireStop(void) //MillisecStop
#include "include.h"
+#include "math.h"
#include <stdbool.h>
#include <ti/sysbios/BIOS.h>
@@ -426,12 +427,17 @@ void ADCAcquireStop(void)
MAP_ADCSequenceDisable(ADC0_BASE, 1);
}
-double Calculate_Pitot_Pressure() // WHS - AN_AIRPRESS_1
+double VPressure_0 = 0;
+double A_offset =-2.429, B_slope_coefficient = 0.267;//A - offset, B - slope coefficient
+
+double Calculate_Pitot_Pressure(bool flow ) // WHS - AN_AIRPRESS_1
{
+
+
//MPXV7002 (NXP)
uint32_t VsampleInBits;
- double Pressure = 0.0, temp, PKpa,PBar,VADC = 0.0 ,VSensor,PMicroBar;
+ double Pressure = 0.0, temp, /*PKpa,PBar,*/VADC = 0.0 ,VSensor/*,PMicroBar*/;
VsampleInBits = ADC_GetReading(ADC_AIR_PRESSURE_1);
@@ -450,15 +456,26 @@ double Calculate_Pitot_Pressure() // WHS - AN_AIRPRESS_1
VSensor = (1.96- VADC) * 4.64 + 1.96;
- PKpa = 5 * VSensor;
- // ---- P[Kpa] -> BAR ----
+ if(flow == false)
+ {
+ VPressure_0 = VSensor;
+ return VPressure_0;
+ }
+ else
+ {
+ Pressure = A_offset + B_slope_coefficient * (sqrt(VSensor - VPressure_0));
+
+ /*
+ PKpa = 5 * VSensor;
+ // ---- P[Kpa] -> BAR ----
- PBar = PKpa / 100.0;
+ PBar = PKpa / 100.0;
- PMicroBar = PBar/1000;
- Pressure = PMicroBar;
+ PMicroBar = PBar/1000;
+ Pressure = PMicroBar;*/
- return Pressure;
+ return Pressure;
+ }
}
uint32_t Read_Dryer_Heaters_Current(HEATERS_CURRENT Heater_ID) //
diff --git a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h
index bcb383f6d..6deab3aca 100644
--- a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h
+++ b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h
@@ -60,7 +60,7 @@ void ADCAcquireStop(void);
void ADC0SS0Handler(void);
-double Calculate_Pitot_Pressure() ;
+double Calculate_Pitot_Pressure(bool flow ) ;
uint8_t Calculate_Gas_Power_Consumption();
uint32_t Read_Dryer_Heaters_Current(HEATERS_CURRENT Heater_ID);
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index 5c56bcaa5..d18833ca6 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -37,6 +37,20 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
response.has_progress = true;
}
else
+ if((request->amount == 0xAB) && (request->delay == 0xAB)) //Get pressure with flow (orifice flow meter)
+ {
+ response.progress = Calculate_Pitot_Pressure(true);
+ response.has_progress = true;
+
+ }
+ else
+ if((request->amount == 0xAB) && (request->delay == 0x0)) //measured sensor voltage without flow (orifice flow meter)
+ {
+ response.progress = Calculate_Pitot_Pressure(false);
+ response.has_progress = true;
+
+ }
+ else
if((request->amount == 0x5C4E) && (request->delay == 0x5C4E)) //Screw Home Pos dir
{
test_Home_Pos();