aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c56
1 files changed, 45 insertions, 11 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index cb1be7fa5..8e67de0f1 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -16,7 +16,9 @@
///////////////////////////////////////////////////////////////////////////////////////////
#include "include.h"
#include "Modules/General/GeneralHardware.h"
+
#include "Modules/AlarmHandling/AlarmHandling.h"
+#include "Modules/General/MachineStatus.h"
#include "MillisecTask.h"
#include <driverlib/timer.h>
@@ -39,6 +41,8 @@
#include "modules/thread/thread_ex.h"
#include "modules/ids/ids_ex.h"
+#include "modules/Diagnostics/Diagnostics.h"
+#include "Modules/General/MachineStatus.h"
#include "drivers/Flash_Memory/Flash_Memory.h"
#include "drivers/Flash_Memory/fatfs/ff.h"
@@ -49,6 +53,7 @@
#include "Communication/Connection.h"
#include "Modules/General/buttons.h"
+#include "Drivers/I2C_Communication/Head_Card/PT100/PT100_ADC.h"
Task_Handle Millisecond_Task_Handle;
/******************** Definitions ********************************************/
@@ -86,14 +91,13 @@ uint32_t Dancer_Data[NUM_OF_DANCERS] = {0};
float Speed_Data = 0;
uint32_t DrawerFansStatus = 0;
uint32_t SystemFansStatus = 0;
-uint8_t Gas_PPM = 0;
-
bool watchdogCriticalAlarm = false;
uint32_t msec_millisecondCounter = 0;
extern bool Machine_Idle_Mode;
+uint8_t Gas_PPM_Info;
MillisecMotorDataStruc ScrewSetMaxSpeedPending = {0};
MillisecMotorDataStruc ScrewMovePending = {0};
MillisecMotorDataStruc MotorData[NUM_OF_MOTORS] = {0};
@@ -109,6 +113,7 @@ static GateMutex_Handle gateMillisecDB;
uint32_t Millisec_timerBase = TIMER1_BASE; //Timer handle
/******************** Functions ********************************************/
uint32_t Control_Delta_Position_Pass(uint32_t Current_Read,uint32_t Previous_Read);
+void CalculateVOCAlarms(void);
//**********************************************************************
/******************** CODE ********************************************/
//**********************************************************************
@@ -414,14 +419,19 @@ uint32_t MillisecLoop(uint32_t tick)
}*/
if (PT100Data[Sensor_i].Active == true)
{
- TemperatureSendSensorDummyClk(Sensor_i);
+ #ifndef Use_Head_Card
+ TemperatureSendSensorDummyClk(Sensor_i);
+ #endif
PT100Data[Sensor_i].Active = false;
PT100Data[Sensor_i].WaitForData = true; // mark the motor for data request next round
break; // one PT100 activitiy per MS
}
else if (PT100Data[Sensor_i].WaitForData == true) //Read request sent, data is waiting
{
- TemperatureSensorReadFromFPGA_Res(Sensor_i); //got the data from the FPGA
+ #ifdef Use_Head_Card
+ HeadADCPT100_SendReadDataCommand(Sensor_i);
+ #endif
+ TemperatureSensorReadFromFPGA_Res(Sensor_i); //got the data from the FPGA
PT100Data[Sensor_i].WaitForData = false;
PT100Data[Sensor_i].SyncRequired = true;
if (PT100Data[Sensor_i].Callback)
@@ -430,7 +440,11 @@ uint32_t MillisecLoop(uint32_t tick)
}
else if (PT100Data[Sensor_i].SyncRequired == true)
{
+ #ifdef Use_Head_Card
+ HeadADCPT100_StartSync(Sensor_i);
+ #endif
TemperatureSensorSync(Sensor_i);
+
PT100Data[Sensor_i].SyncRequired = false;
PT100Activity--;
break; // one PT100 activitiy per MS
@@ -482,6 +496,8 @@ void setRapidPressureRead(bool value)
{
RapidPressureRead = value;
}
+
+uint16_t PumpCounter = 0;
uint32_t MillisecLowLoop(uint32_t tick)
{
uint8_t Motor_i,Disp_i,Heater_i,temp;
@@ -491,16 +507,19 @@ uint32_t MillisecLowLoop(uint32_t tick)
//call all modules Millisec functions
//test dancers and speed encoders
//check all callback units (state machine waiting for completion of a change)
- bool Ten_msTick, Hundred_msTick , m90msecTick, Onesecond_Tick,O900Millisecond_Tick,OneMinute_Tick;
+ bool Ten_msTick, Hundred_msTick , m90msecTick, Onesecond_Tick,O900Millisecond_Tick,OneMinute_Tick,OneHourTick;
Ten_msTick = (tick%eTenMillisecond == 0) ?true:false;
Hundred_msTick = (tick%eHundredMillisecond == 0) ?true:false;
m90msecTick = (tick%eHundredMillisecond == 90) ?true:false;
O900Millisecond_Tick = (tick%eOneSecond == 900) ?true:false;
Onesecond_Tick = (tick%eOneSecond == 0) ?true:false;
OneMinute_Tick = (tick%eOneMinute == 0) ?true:false;
+ OneHourTick = (tick%eOneHour == 0) ?true:false;
//gather Motor data from FPGA
//ROM_IntMasterDisable();
+ //Screw_ENC_Velocity_to_DAC(); - for testing the screw enc
+
if (Ten_msTick)
{
//Speed_Data = Calculate_Speed_Sensor_Velocity();
@@ -520,7 +539,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
{
Speed_Data = Calculate_Speed_Sensor_Velocity();
Read_Buttons_Reg();
- Ink_Cart_Led();
+ //Ink_Cart_Led();
for (Sensor_i = 0;Sensor_i < MAX_TEMPERATURE_SENSOR_ID;Sensor_i++)
{
MillisecUpdateTemperatures (Sensor_i,TemperatureSensorRead(Sensor_i));
@@ -542,6 +561,8 @@ uint32_t MillisecLowLoop(uint32_t tick)
}
ADC_TriggerCollection();
}
+ DispensersCollectionCall();
+
}
if ((O900Millisecond_Tick)&&(RapidPressureRead == false))
@@ -565,8 +586,8 @@ uint32_t MillisecLowLoop(uint32_t tick)
//KeepAliveOneSecondCall();
for (Motor_i = 0;Motor_i < NUM_OF_MOTORS;Motor_i++)
{
- if (Motor_i == HARDWARE_MOTOR_TYPE__MOTO_SCREW)
- continue; //
+ // if (Motor_i == HARDWARE_MOTOR_TYPE__MOTO_SCREW)
+ // continue; //
if (isMotorConfigured(Motor_i))
MotorGetStatusFromFPGA(Motor_i);
}
@@ -577,7 +598,6 @@ uint32_t MillisecLowLoop(uint32_t tick)
Read_Heaters_Current(Heater_i);
}
}
- Gas_PPM = Calculate_Gas_Power_Consumption();
for (Sensor_i = 0;Sensor_i < MAX_TEMPERATURE_SENSOR_ID;Sensor_i++)
{
TemperatureCalc[Sensor_i] = MillisecCalculateTemperatures ( Sensor_i);
@@ -589,13 +609,27 @@ uint32_t MillisecLowLoop(uint32_t tick)
{
Read_MidTank_Pressure_Sensor(Disp_i);
}
-/* for (Motor_i = 0;Motor_i < NUM_OF_MOTORS;Motor_i++)
+ MachineUpdateResponseFunc();
+ /* for (Motor_i = 0;Motor_i < NUM_OF_MOTORS;Motor_i++)
{
if (Motor_i == HARDWARE_MOTOR_TYPE__MOTO_SCREW)
continue; //
if (isMotorConfigured(Motor_i))
MotorGetStatusFromFPGA(Motor_i);
}*/
+ midtankDisplay = 1-midtankDisplay;
+ Gas_PPM_Info = Calculate_Gas_Power_Consumption();
+
+ }
+ if (OneHourTick)
+ {
+#define PUMP_LIMIT 8
+ PumpCounter++;
+ if (PumpCounter>=PUMP_LIMIT)
+ {
+ PumpActivation(900);
+ PumpCounter = 0;
+ }
}
//ROM_IntMasterEnable();
@@ -691,7 +725,7 @@ uint32_t getDrawerFansStatus(void)
}
uint8_t getGasReading(void)
{
- return Gas_PPM;
+ return Gas_PPM_Info;
}
uint32_t getSystemFansStatus(void)