aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-05-24 14:53:02 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-05-24 14:53:02 +0300
commit138fe61879c98c0fe2fbc15f69d4cfd9b7dc66cb (patch)
tree503d11f1f33519395ebdfc3a92d0c185efadd902 /Software/Embedded_SW/Embedded/Modules
parent4880b344601c12c50fb78429896ef98b693bcd4b (diff)
downloadTango-138fe61879c98c0fe2fbc15f69d4cfd9b7dc66cb.tar.gz
Tango-138fe61879c98c0fe2fbc15f69d4cfd9b7dc66cb.zip
Stub_RealTimeUsageRequest
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c65
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c15
2 files changed, 38 insertions, 42 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index cae09cfd8..3e9218392 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -159,9 +159,11 @@ void OneMilliSecondMillisecInterrupt(UArg arg0)
ROM_IntMasterEnable();
return ;
}
+uint32_t PT100Activity = 0;
int32_t MillisecWriteToTempSensor(uint32_t TempSensorId, unsigned long Data, int Length, MSecFptr Callback)
{
if (TempSensorId >= MAX_TEMPERATURE_SENSOR_ID) return -1;
+ PT100Activity++;
PT100Data[TempSensorId].Callback = Callback;
PT100Data[TempSensorId].Data = Data;
PT100Data[TempSensorId].Length = Length;
@@ -173,6 +175,8 @@ int32_t MillisecWriteToTempSensor(uint32_t TempSensorId, unsigned long Data, int
int32_t MillisecReadFromTempSensor(uint32_t TempSensorId, unsigned long Data, int Length, MSecFptr Callback)
{
if (TempSensorId >= MAX_TEMPERATURE_SENSOR_ID) return -1;
+ PT100Activity++; //read request
+ PT100Activity++; //get response
PT100Data[TempSensorId].Callback = Callback;
PT100Data[TempSensorId].Data = Data;
PT100Data[TempSensorId].Length = Length;
@@ -291,34 +295,39 @@ uint32_t MillisecLoop(uint32_t tick)
}
}
//FPGA_GetTempSensorBusy();
- for (Sensor_i = TEMP_SENSE_ANALOG_MIXCHIP_TEMP;Sensor_i < MAX_TEMPERATURE_SENSOR_ID;Sensor_i++)
- {
- //if (TempDriverDriverResponse[Sensor_i].Busy == true)
- // continue;
- if (PT100Data[Sensor_i].WaitForData == true) //Read request sent, data is waiting
- {
- if (SPIGetFPGAResponse(Sensor_i,&MotorInfo) == OK) //got the data from the FPGA
- {
- PT100Data[Sensor_i].WaitForData = false;
- if (PT100Data[Sensor_i].Callback)
- PT100Data[Sensor_i].Callback(Sensor_i,MotorInfo);
- }
- }
- if (PT100Data[Sensor_i].Active == true)
- {
- SPISendFPGARequest(Sensor_i,PT100Data[Sensor_i].Data,PT100Data[Sensor_i].Length);
- PT100Data[Sensor_i].Active = false;
- if (PT100Data[Sensor_i].DataRequired == true)
- {
- PT100Data[Sensor_i].WaitForData = true; // mark the motor for data request next round
- }
- else
- {
- if (PT100Data[Sensor_i].Callback)
- PT100Data[Sensor_i].Callback(Sensor_i,0); // call the callback to report execution
- }
- }
- }
+ if (PT100Activity)
+ {
+ for (Sensor_i = TEMP_SENSE_ANALOG_MIXCHIP_TEMP;Sensor_i < MAX_TEMPERATURE_SENSOR_ID;Sensor_i++)
+ {
+ //if (TempDriverDriverResponse[Sensor_i].Busy == true)
+ // continue;
+ if (PT100Data[Sensor_i].WaitForData == true) //Read request sent, data is waiting
+ {
+ if (SPIGetFPGAResponse(Sensor_i,&MotorInfo) == OK) //got the data from the FPGA
+ {
+ PT100Data[Sensor_i].WaitForData = false;
+ if (PT100Data[Sensor_i].Callback)
+ PT100Data[Sensor_i].Callback(Sensor_i,MotorInfo);
+ }
+ PT100Activity--;
+ }
+ if (PT100Data[Sensor_i].Active == true)
+ {
+ SPISendFPGARequest(Sensor_i,PT100Data[Sensor_i].Data,PT100Data[Sensor_i].Length);
+ PT100Data[Sensor_i].Active = false;
+ if (PT100Data[Sensor_i].DataRequired == true)
+ {
+ PT100Data[Sensor_i].WaitForData = true; // mark the motor for data request next round
+ }
+ else
+ {
+ if (PT100Data[Sensor_i].Callback)
+ PT100Data[Sensor_i].Callback(Sensor_i,0); // call the callback to report execution
+ }
+ PT100Activity--;
+ }
+ }
+ }
Dancer_Data[FEEDER_DANCER] = Read_Dancer_Position(FEEDER_DANCER);
Dancer_Data[POOLER_DANCER] = Read_Dancer_Position(POOLER_DANCER);
Dancer_Data[WINDER_DANCER] = Read_Dancer_Position(WINDER_DANCER);
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
index 74dcba2fe..fbfb0ed85 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
@@ -16,11 +16,6 @@
#include <Container.h>
#include <DataDef.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
#include <PMR/Stubs/StubRealTimeUsageResponse.pb-c.h>
#include <PMR/Stubs/StubRealTimeUsageRequest.pb-c.h>
@@ -35,15 +30,7 @@
#include "MessageContainer.pb-c.h"
#include "Stub_Status.h"
-#include "drivers/FPGA/FPGA.h"
-#include "drivers/SPI/SPI_Comm.h"
-
-#include "drivers/FPGA/Moters_Driver/L6470.h"
-
-#include "driverlib/ssi.h"
-#include "drivers/SPI/SPI_Comm.h"
-#include "drivers/FPGA/FPGA_SSI_Comm.h"
-#include "Modules/Thread/Thread_ex.h"
+#include "common/utilities/idle_task.h"
#include "Modules/thread/thread.h"