diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-05-24 14:53:02 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-05-24 14:53:02 +0300 |
| commit | 138fe61879c98c0fe2fbc15f69d4cfd9b7dc66cb (patch) | |
| tree | 503d11f1f33519395ebdfc3a92d0c185efadd902 /Software/Embedded_SW/Embedded/Modules | |
| parent | 4880b344601c12c50fb78429896ef98b693bcd4b (diff) | |
| download | Tango-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.c | 65 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c | 15 |
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" |
