aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Control
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2020-02-26 13:24:31 +0200
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2020-02-26 13:24:31 +0200
commit6b223bcd7f7e1e0b76a33ecd00c17d7b846c91a9 (patch)
tree832169bbbb3fb93063230b8c767f6f6ac777f3ca /Software/Embedded_SW/Embedded/Modules/Control
parenta64cfe8b7dec8417a3d380b55f4ae79c5459f49d (diff)
parent5cedf7cc7de176c6b3ecdcef9b7ad1382400e880 (diff)
downloadTango-6b223bcd7f7e1e0b76a33ecd00c17d7b846c91a9.tar.gz
Tango-6b223bcd7f7e1e0b76a33ecd00c17d7b846c91a9.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Control')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c36
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c8
2 files changed, 27 insertions, 17 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index 195cc65f3..00ce306cf 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -58,6 +58,7 @@
#include <Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/WHS_PT100_ADC.h>
#include <Drivers/I2C_Communication/I2C_Task.h>
+#include <Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.h>
Task_Handle Millisecond_Task_Handle;
/******************** Definitions ********************************************/
@@ -568,6 +569,7 @@ void setRapidPressureRead(bool value)
}
uint16_t PumpCounter = 0;
+uint16_t realtimetest[101];
uint32_t MillisecLowLoop(uint32_t tick)
{
uint8_t Motor_i,Disp_i,temp;
@@ -578,7 +580,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
//test dancers and speed encoders
//check all callback units (state machine waiting for completion of a change)
bool Ten_msTick, Fifty_msTick, Hundred_msTick , m20msecTick,m70msecTick,m90msecTick, Onesecond_Tick,OneMinute_Tick,OneHourTick,Gradient_Tick;
- bool O100Millisecond_Tick,O200Millisecond_Tick,O400Millisecond_Tick,O500Millisecond_Tick,O600Millisecond_Tick;
+ bool O700Millisecond_Tick,O200Millisecond_Tick,O400Millisecond_Tick,O500Millisecond_Tick,O600Millisecond_Tick;
//bool O100Millisecond_Tick,O200Millisecond_Tick,O400Millisecond_Tick,O500Millisecond_Tick,O600Millisecond_Tick,O800Millisecond_Tick,O900Millisecond_Tick;
Ten_msTick = (tick%eTenMillisecond == 0) ?true:false;
Fifty_msTick = (tick%eHundredMillisecond == 40) ?true:false; //eFiftyMillisecond
@@ -586,7 +588,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
m20msecTick = (tick%eHundredMillisecond == 20) ?true:false;
m70msecTick = (tick%eHundredMillisecond == 70) ?true:false;
m90msecTick = (tick%eHundredMillisecond == 90) ?true:false;
- O100Millisecond_Tick = (tick%eOneSecond == 100) ?true:false;
+ O700Millisecond_Tick = (tick%eOneSecond == 700) ?true:false;
O200Millisecond_Tick = (tick%eOneSecond == 200) ?true:false;
O400Millisecond_Tick = (tick%eOneSecond == 400) ?true:false;
O500Millisecond_Tick = (tick%eOneSecond == 500) ?true:false;
@@ -597,6 +599,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
Onesecond_Tick = (tick%eOneSecond == 0) ?true:false;
OneMinute_Tick = (tick%eOneMinute == 0) ?true:false;
OneHourTick = (tick%eOneHour == 0) ?true:false;
+ realtimetest[(tick%1000)/10]++;
//gather Motor data from FPGA
//ROM_IntMasterDisable();
int StartPT100 = 0;
@@ -605,7 +608,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
StartPT100 = TEMP_SENSE_ANALOG_DRYER_TEMP1;
if (Ten_msTick)
{
- //Speed_Data = Calculate_Speed_Sensor_Velocity();
+ Speed_Data = Read_Speed_Sensor_TypeII();
//MillisecReadFromTempSensor(Sensor_Read, NULL);
//if (Sensor_Read++ >= MAX_MAIN_CARD_TEMPERATURE_SENSOR_ID) Sensor_Read = 0;
if(Machine_Idle_Mode == true)
@@ -662,12 +665,13 @@ uint32_t MillisecLowLoop(uint32_t tick)
}
if (Gradient_Tick)
DispensersCollectionCall();
- if (O100Millisecond_Tick)
+ if (O700Millisecond_Tick)
{
Trigger_Heater_Current_Read();
}
if (O200Millisecond_Tick)
{
+ Trigger_WHS_MAX11614_Read_allADC();
FPGA_GetAllDispensersValveBusyOCD();
temp = Read_Fans_Tacho();
DrawerFansStatus = temp & 0x1F;
@@ -689,6 +693,8 @@ uint32_t MillisecLowLoop(uint32_t tick)
}
if (O600Millisecond_Tick)
{
+ Trigger_WHSReadAllFanTacho ();
+ DrierHeaterVoltageSetup();
if (RapidPressureRead == false)
{
for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++)
@@ -704,8 +710,8 @@ uint32_t MillisecLowLoop(uint32_t tick)
MachineUpdateResponseFunc();
//KeepAliveOneSecondCall();
- TemperatureListString(Lenstr);
- ReportWithPackageFilter(ThreadFilter,Lenstr,__FILE__,__LINE__,(int)Counter++,RpWarning,(int) msec_millisecondCounter,0);
+ //TemperatureListString(Lenstr);
+ //ReportWithPackageFilter(ThreadFilter,Lenstr,__FILE__,__LINE__,(int)Counter++,RpWarning,(int) msec_millisecondCounter,0);
for (Sensor_i = StartPT100;Sensor_i < MAX_HEAD_CARD_TEMP_SENS_ID;Sensor_i++)
{
TemperatureCalc[Sensor_i] = MillisecCalculateTemperatures ( Sensor_i);
@@ -717,17 +723,21 @@ uint32_t MillisecLowLoop(uint32_t tick)
PressureCalc[Disp_i] = MillisecCalculatePressures(Disp_i);
}
}
- Trigger_WHS_PT100_Read_All();
- Trigger_WHS_MAX11614_Read_allADC();
- Trigger_WHSReadAllFanTacho ();
+ if (WHS_Type == WHS_TYPE_NEW)
+ {
+ Trigger_WHS_PT100_Read_All();
+ WHS_Blower_Avarege_ORF1(); //drier
+ WHS_Blower_Avarege_ORF3(); //head
+ WHS_Start_Blower_Control_Closed_Loop ();
+ }
}
if (OneMinute_Tick)
{
- Trigger_MidTank_Pressure_Read();
- /*for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++)
+ //Trigger_MidTank_Pressure_Read();
+ for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++)
{
Read_MidTank_Pressure_Sensor(Disp_i);
- }*/
+ }
// MachineUpdateResponseFunc();
/* for (Motor_i = 0;Motor_i < NUM_OF_MOTORS;Motor_i++)
{
@@ -919,7 +929,7 @@ void HundredMicroTimerInterrupt(int ARG0)
StoreBuffer[StoreBufferId][StoreBufferCounter++] = dancer2;
StoreBuffer[StoreBufferId][StoreBufferCounter++] = dancer3;
/*-----------------------*/
- //len = usprintf(&StoreBuffer[StoreBufferId][StoreBufferCounter], "\r\n%d %d %d", dancer1[dancer_count],dancer2[dancer_count],dancer3[dancer_count]);
+ //len = usprintf(&StoreBuffer[StoreBufferId][StoreBufferCounter], "%d %d %d", dancer1[dancer_count],dancer2[dancer_count],dancer3[dancer_count]);
//StoreBufferCounter+=(len+1);
/*-----------------------*/
dancer1sum+=dancer1;
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c
index 5adf6f83d..bea68e314 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/control.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c
@@ -65,7 +65,7 @@
#include "MillisecTask.h"
-//#define CONTROL_DEBUG
+
#define DURATION_LIMIT 6
/******************** Definitions ********************************************/
#define MAX_TANGO_CONTROL_DEVICES 100
@@ -576,8 +576,8 @@ uint32_t ControlLowLoop(uint32_t tick)
if (tick-prevtick>1)
{
skipped_ticks = tick-prevtick-1;
- if (tick-prevtick>10)
- Report("ControlLowLoop skipped",__FILE__,tick,(int)prevtick,RpWarning,(int)skipped_ticks,0);
+ //if (tick-prevtick>10)
+ // Report("ControlLowLoop skipped",__FILE__,tick,(int)prevtick,RpWarning,(int)skipped_ticks,0);
}
prevtick = tick;
@@ -585,7 +585,7 @@ uint32_t ControlLowLoop(uint32_t tick)
{
if (ControlArray[ControlLowDevice_i].ControlActive)
{
- if (tick == ControlArray[ControlLowDevice_i].StartTick)
+ if (tick - ControlArray[ControlLowDevice_i].StartTick<=skipped_ticks)
continue;
if (ControlArray[ControlLowDevice_i].ControlTiming == eOneMillisecond)
continue;