diff options
| author | Avi Levkovich <avi@twine-s.com> | 2019-08-15 09:28:24 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2019-08-15 09:28:24 +0300 |
| commit | 04db0ce68722b5c8cd87fe6142298c8a1de4f061 (patch) | |
| tree | 5ada91e8cba0fb8533e979267909a28b58c3c4cf /Software/Embedded_SW/Embedded | |
| parent | 5a03c18cdb77bcf2da2273d174ae47bb313e1e9f (diff) | |
| download | Tango-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')
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(); |
