aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Control
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-11 20:58:41 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-11 20:58:41 +0200
commit942aae29de03a5a3e0d139974b3754392ee9c1ff (patch)
tree92735c0767466b97b0c389154532cbec29c3ceb1 /Software/Embedded_SW/Embedded/Modules/Control
parent621230afe9d9040536b43241e63117c9bb34beaa (diff)
parent9b712a41f08f8a0c13366db730fba6ec927a97d3 (diff)
downloadTango-942aae29de03a5a3e0d139974b3754392ee9c1ff.tar.gz
Tango-942aae29de03a5a3e0d139974b3754392ee9c1ff.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.c28
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c22
2 files changed, 45 insertions, 5 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index 48a28ffe4..8897dfdbb 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -226,13 +226,18 @@ void OneMilliSecondMillisecInterrupt(UArg arg0)
return ;
}
uint32_t PT100Activity = 0;
+int32_t MillisecReadFromI2CTempSensor(uint32_t TempSensorId, MSecFptr Callback)
+{
+#warning call I2C temeratures
+ return OK;
+}
+
int32_t MillisecReadFromTempSensor(uint32_t TempSensorId, MSecFptr Callback)
{
if (TempSensorId >= MAX_MAIN_CARD_TEMP_SENS_ID) return -1;
PT100Activity++; //read request
PT100Data[TempSensorId].Callback = Callback;
PT100Data[TempSensorId].Active = true;
-
return OK;
}
//typedef uint32_t (* MSecFptr)(uint32_t deviceID, uint32_t ReadValue);
@@ -574,11 +579,13 @@ 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,OneMinute_Tick,OneHourTick;
+ bool Ten_msTick, Hundred_msTick , m20msecTick,m70msecTick,m90msecTick, Onesecond_Tick,OneMinute_Tick,OneHourTick;
bool O100Millisecond_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;
Hundred_msTick = (tick%eHundredMillisecond == 0) ?true:false;
+ 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;
O200Millisecond_Tick = (tick%eOneSecond == 200) ?true:false;
@@ -603,6 +610,23 @@ uint32_t MillisecLowLoop(uint32_t tick)
if(Machine_Idle_Mode == true)
Machine_Idle_Breathing_Led();
}
+#ifdef Use_Head_Card
+ if (m20msecTick) //read odd PT1000
+ {
+ for (Sensor_i = HEAD_PT100_ZONE_1_0X80_0;Sensor_i < HEAD_PT100_ZONE_2_0X80_1;Sensor_i++)
+ {
+ MillisecReadFromI2CTempSensor(Sensor_i, NULL);
+ }
+#warning call chip select replace in I2C
+ }
+ if (m70msecTick) //read odd PT1000
+ {
+ for (Sensor_i = HEAD_PT100_ZONE_2_0X80_1;Sensor_i < HEAD_PT100_RESERVE_0X8E_1;Sensor_i++)
+ {
+ MillisecReadFromI2CTempSensor(Sensor_i, NULL);
+ }
+ }
+#endif
if (m90msecTick)
{
#ifdef Use_Head_Card
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c
index d59aae8f4..b60fb3aa4 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/control.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c
@@ -45,17 +45,25 @@
//by recieved esign flow of the user from the UI
///////////////////////////////////////////////////////////////////////////////////////////
#include "include.h"
-#include "Modules/General/GeneralHardware.h"
#include <driverlib/timer.h>
#include <inc/hw_ints.h>
+#include <PMR/Diagnostics/EventType.pb-c.h>
+
#include "drivers/adc_sampling/adc.h"
+#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
+
#include "Modules/General/buttons.h"
+#include "Modules/General/GeneralHardware.h"
+
+#include "StateMachines/Printing/PrintingSTM.h"
#include "control.h"
#include "MillisecTask.h"
-#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
+
+
+
/******************** Definitions ********************************************/
#define MAX_TANGO_CONTROL_DEVICES 120
/******************** STRUCTURES AND ENUMs ********************************************/
@@ -169,8 +177,16 @@ uint32_t ControlActivityLed( uint32_t Parameter1)
ACTIVITY_RED_LED_OFF; // Heaters indication - all the Heaters OFF
if(FPGA_WD_Occurred == true)
{
+ FPGA_WD_Occurred = false;
+ AlarmHandlingSetAlarm(EVENT_TYPE__FPGA_WATCHDOG_ACTIVATED,true);
+ JobEndReason = JOB_MOTOR_ALARM;
+ SendJobProgress(0.0,0,false, "Hardware Failure Error");
+ AbortJob("FPGA Watchdog Error");
+ ReportWithPackageFilter(FPGAFilter, "FPGA Watchdog Error",__FILE__,__LINE__,0,RpError, 0,0);
+
ACTIVITY_GREEN_LED_ON;
- //Motor_ReconfigAllMotors();
+ FPGA_SetMotorsInit();
+ Motor_ReconfigAllMotors();
}
else
ACTIVITY_GREEN_LED_OFF;