From ce0fe045c8dc0f005c4e70da5e71729d0c986165 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 12 May 2019 18:24:22 +0300 Subject: fix double report issue. improve IDS pressure build --- .../Embedded/Modules/Control/MillisecTask.c | 32 ++++++++++++++++++---- .../Embedded/Modules/Control/MillisecTask.h | 1 + 2 files changed, 27 insertions(+), 6 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Control') diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index 916d33772..4cd56df56 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -477,6 +477,11 @@ int MillisecGetTemperatures (TEMPERATURE_SENSOR_ID_ENUM SensorId) { return TemperatureCalc[SensorId]; } +bool RapidPressureRead = false; +void setRapidPressureRead(bool value) +{ + RapidPressureRead = value; +} uint32_t MillisecLowLoop(uint32_t tick) { uint8_t Motor_i,Disp_i,Heater_i,temp; @@ -528,18 +533,30 @@ uint32_t MillisecLowLoop(uint32_t tick) //LOG_ERROR (1111, "Control_WD"); } } + if (RapidPressureRead == true) + { + for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++) + { + CalculateDispenserPressure(Disp_i); + //Read_MidTank_Pressure_Sensor(Disp_i); + } + ADC_TriggerCollection(); + } } - if (O900Millisecond_Tick) + if ((O900Millisecond_Tick)&&(RapidPressureRead == false)) { ADC_TriggerCollection(); } if (Onesecond_Tick) { - for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++) + if (RapidPressureRead == false) { - CalculateDispenserPressure(Disp_i); - //Read_MidTank_Pressure_Sensor(Disp_i); + for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++) + { + CalculateDispenserPressure(Disp_i); + //Read_MidTank_Pressure_Sensor(Disp_i); + } } FPGA_GetAllDispensersValveBusyOCD(); temp = Read_Fans_Tacho(); @@ -553,9 +570,12 @@ uint32_t MillisecLowLoop(uint32_t tick) if (isMotorConfigured(Motor_i)) MotorGetStatusFromFPGA(Motor_i); } - for (Heater_i = 0;Heater_i < NUM_OF_CURRENT_HEATERS;Heater_i++) + if (!(OneMinute_Tick)) { - Read_Heaters_Current(Heater_i); + for (Heater_i = 0;Heater_i < NUM_OF_CURRENT_HEATERS;Heater_i++) + { + Read_Heaters_Current(Heater_i); + } } Gas_PPM = Calculate_Gas_Power_Consumption(); for (Sensor_i = 0;Sensor_i < MAX_TEMPERATURE_SENSOR_ID;Sensor_i++) diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h index be82d9e98..4edc1a8ed 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h @@ -34,6 +34,7 @@ uint32_t getDrawerFansStatus(void); uint32_t getSystemFansStatus(void); uint8_t getGasReading(void); int MillisecGetTemperatures (TEMPERATURE_SENSOR_ID_ENUM SensorId); +void setRapidPressureRead(bool value); void MillisecInit(void); -- cgit v1.3.1