aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-11-24 18:27:19 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-11-24 18:27:19 +0200
commitf95ad012ba68f1b025654925ca17d199d653a41c (patch)
tree5a64e7ba0544738586abd86c86874f2fb6e8085c
parent7c02160e97932c8707d82f90c39c3994d22c6ef1 (diff)
downloadTango-f95ad012ba68f1b025654925ca17d199d653a41c.tar.gz
Tango-f95ad012ba68f1b025654925ca17d199d653a41c.zip
fix error in winder (job start with screw at limit), RFID tracing. RFID init from main (not in task). FIX A BAD BUG IN ALARM HANDLING
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_RFID_Dispenser_Task/I2C_RFID_Disp_Task.c3
-rw-r--r--Software/Embedded_SW/Embedded/Main.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c30
3 files changed, 34 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_RFID_Dispenser_Task/I2C_RFID_Disp_Task.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_RFID_Dispenser_Task/I2C_RFID_Disp_Task.c
index 79d31393b..5cfb7cf6c 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_RFID_Dispenser_Task/I2C_RFID_Disp_Task.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_RFID_Dispenser_Task/I2C_RFID_Disp_Task.c
@@ -317,6 +317,7 @@ void DispRFID_Task(UArg arg0, UArg arg1)
while(1)
{
Mailbox_pend(RFID_ReadingMsgQ , &RFID_ReadingMessage, BIOS_WAIT_FOREVER);
+ Report("RFID task message",__FILE__,__LINE__,RFID_ReadingMessage.messageId ,RpWarning,(int) msec_millisecondCounter,0);
/* select the correct I2C bus */
if (RFID_ReadingMessage.messageId < RFID_End)
@@ -428,6 +429,8 @@ void DispRFID_Task(UArg arg0, UArg arg1)
default:
break;
}
+ Report("RFID message end",__FILE__,__LINE__,RFID_ReadingMessage.messageId ,RpWarning,(int) msec_millisecondCounter,0);
+
}
}
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c
index 6c40b7916..e6455e46c 100644
--- a/Software/Embedded_SW/Embedded/Main.c
+++ b/Software/Embedded_SW/Embedded/Main.c
@@ -335,7 +335,8 @@ int main(void)
I2C_DispRFIDTask_Init();//I2C Task for dispensers & RFID
#if defined(USE_RFID_LOGIC) || defined(USE_RFID_STUB)
- Trigger_RFID_Init(); //Init_IFS();//must be done after FPGA_Init
+ //Trigger_RFID_Init(); //Init_IFS();//must be done after FPGA_Init
+ Init_IFS();
#else
Check_IFS_Availability();
#endif
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
index 8ecb3f404..011488c49 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
@@ -221,6 +221,7 @@ uint32_t Winder_Prepare(void *JobDetails)
{
//REPORT_MSG(LIMIT, "Winder_Prepare at limit");
Winder_PrepareStage2(0,0);
+ Screw_wait_counter=1;
}
else
{
@@ -229,15 +230,42 @@ uint32_t Winder_Prepare(void *JobDetails)
//REPORT_MSG(MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].directionthreadwize, "Winder_Prepare move to limit");
Screw_wait_counter=1;
status = MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_SCREW,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].directionthreadwize, ScrewSpeed, GPI_LS_SCREW_RIGHT, Winder_PrepareStage2,2000);
+ }
#ifdef FOUR_WINDERS
+ if (FPGA_Read_limit_Switches(GPI_LS_SPARE2_2)==LIMIT)
+ {
+ Winder_PrepareStage2(0,0);
+ Screw_wait_counter++;
+ }
+ else
+ {
+ Winder_ScrewHoming = true;
Screw_wait_counter++;
status = MotorMovetoLimitSwitch (SCREW_2_Motor,MotorsCfg[SCREW_2_Motor].directionthreadwize, ScrewSpeed, GPI_LS_SPARE2_2, Winder_PrepareStage2,2000);
+ }
+ if (FPGA_Read_limit_Switches(GPI_LS_SPARE1_2)==LIMIT)
+ {
+ Winder_PrepareStage2(0,0);
+ Screw_wait_counter++;
+ }
+ else
+ {
+ Winder_ScrewHoming = true;
Screw_wait_counter++;
status = MotorMovetoLimitSwitch (SCREW_3_Motor,MotorsCfg[SCREW_3_Motor].directionthreadwize, ScrewSpeed, GPI_LS_SPARE1_2, Winder_PrepareStage2,2000);
+ }
+ if (FPGA_Read_limit_Switches(GPI_LS_RDANCER_UP)==LIMIT)
+ {
+ Winder_PrepareStage2(0,0);
+ Screw_wait_counter++;
+ }
+ else
+ {
+ Winder_ScrewHoming = true;
Screw_wait_counter++;
status = MotorMovetoLimitSwitch (SCREW_4_Motor,MotorsCfg[SCREW_4_Motor].directionthreadwize, ScrewSpeed, GPI_LS_RDANCER_UP, Winder_PrepareStage2,2000);
-#endif
}
+#endif
return status;
}
/*