aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2018-08-21 09:17:46 +0300
committerAvi Levkovich <avi@twine-s.com>2018-08-21 09:17:46 +0300
commit193f7f5e096751da747b0fe9d145bd43a02d7340 (patch)
treece0aa138252ca76426fbbc84e1753d7e410011a9 /Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
parent98493042a5dace2535dd4343c047eaf1bd784ae3 (diff)
parentf468145c16b5c677201327feeb4f207c21df0b0b (diff)
downloadTango-193f7f5e096751da747b0fe9d145bd43a02d7340.tar.gz
Tango-193f7f5e096751da747b0fe9d145bd43a02d7340.zip
merge after conflict
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c81
1 files changed, 28 insertions, 53 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index 75462bd7c..9f515062d 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -178,11 +178,7 @@ int32_t MillisecReadFromTempSensor(uint32_t TempSensorId, MSecFptr Callback)
{
if (TempSensorId >= MAX_TEMPERATURE_SENSOR_ID) return -1;
PT100Activity++; //read request
- PT100Activity++; //get response
- PT100Activity++; //read request
PT100Data[TempSensorId].Callback = Callback;
- PT100Data[TempSensorId].WaitForData = true;
- PT100Data[TempSensorId].DataRequired = true;
PT100Data[TempSensorId].Active = true;
return OK;
@@ -265,10 +261,12 @@ int32_t MillisecReadFromMotor(TimerMotors_t MotorId, unsigned long Data, int Len
return Mailbox_post(MotorsMsgQ[MotorId] , &MotorData, BIOS_NO_WAIT);
else return false;
}
+
+//TEMPERATURE_SENSOR_ID_ENUM Sensor_Read = 0;
uint32_t MillisecLoop(uint32_t tick)
{
- uint8_t Motor_i;
- uint8_t Sensor_i;
+ uint8_t Motor_i,Disp_i;
+ TEMPERATURE_SENSOR_ID_ENUM Sensor_i;
unsigned int MotorInfo = 0;
static int temp=0;
//call all modules Millisec functions
@@ -342,46 +340,28 @@ uint32_t MillisecLoop(uint32_t tick)
{
//if (TempDriverDriverResponse[Sensor_i].Busy == true)
// continue;
- if (PT100Data[Sensor_i].SyncRequired == true)
+ if (PT100Data[Sensor_i].Active == true)
{
- TemperatureSendSensorDummyClk((TEMPERATURE_SENSOR_ID_ENUM)Sensor_i);
- PT100Data[Sensor_i].SyncRequired = 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--;
-
+ TemperatureSendSensorDummyClk(Sensor_i);
+ PT100Data[Sensor_i].Active = false;
+ PT100Data[Sensor_i].WaitForData = true; // mark the motor for data request next round
+ break; // one PT100 activitiy per MS
}
else if (PT100Data[Sensor_i].WaitForData == true) //Read request sent, data is waiting
{
- if (TemperatureSensorReadFromFPGA_Res((TEMPERATURE_SENSOR_ID_ENUM)Sensor_i) == OK) //got the data from the FPGA
- {
- PT100Data[Sensor_i].WaitForData = false;
- if (PT100Data[Sensor_i].Callback)
+ TemperatureSensorReadFromFPGA_Res(Sensor_i); //got the data from the FPGA
+ PT100Data[Sensor_i].WaitForData = false;
+ PT100Data[Sensor_i].SyncRequired = true;
+ if (PT100Data[Sensor_i].Callback)
PT100Data[Sensor_i].Callback(Sensor_i,MotorInfo);
- }
- PT100Activity--;
+ break; // one PT100 activitiy per MS
}
- if (PT100Data[Sensor_i].Active == true)
+ else if (PT100Data[Sensor_i].SyncRequired == true)
{
- TemperatureSensorReadFromFPGA((TEMPERATURE_SENSOR_ID_ENUM)Sensor_i);
- PT100Data[Sensor_i].Active = false;
- if (PT100Data[Sensor_i].DataRequired == true)
- {
- PT100Data[Sensor_i].SyncRequired = 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
- }
+ TemperatureSensorSync(Sensor_i);
+ PT100Data[Sensor_i].SyncRequired = false;
PT100Activity--;
+ break; // one PT100 activitiy per MS
}
}
}
@@ -391,24 +371,15 @@ uint32_t MillisecLoop(uint32_t tick)
if (Ten_msTick)
{
Speed_Data = Calculate_Speed_Sensor_Velocity();
+ //MillisecReadFromTempSensor(Sensor_Read, NULL);
+ //if (Sensor_Read++ >= MAX_TEMPERATURE_SENSOR_ID) Sensor_Read = 0;
}
- /*if (Tick98)
- {
- MotorGetSpeedFromFPGA(HARDWARE_MOTOR_TYPE__MOTO_RDRIVING);
- MotorGetSpeedFromFPGA(HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING);
- MotorGetSpeedFromFPGA(HARDWARE_MOTOR_TYPE__MOTO_LDRIVING);
- MotorGetSpeedFromFPGA(HARDWARE_MOTOR_TYPE__MOTO_WINDER);
- MotorGetSpeedFromFPGA(HARDWARE_MOTOR_TYPE__MOTO_SCREW);
- }*/
if (Hundred_msTick)
{
for (Sensor_i = 0;Sensor_i < MAX_TEMPERATURE_SENSOR_ID;Sensor_i++)
+ {
MillisecReadFromTempSensor(Sensor_i, NULL);
- /* MotorGetSpeedFromFPGA_Res(HARDWARE_MOTOR_TYPE__MOTO_RDRIVING);
- MotorGetSpeedFromFPGA_Res(HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING);
- MotorGetSpeedFromFPGA_Res(HARDWARE_MOTOR_TYPE__MOTO_LDRIVING);
- MotorGetSpeedFromFPGA_Res(HARDWARE_MOTOR_TYPE__MOTO_WINDER);
- MotorGetSpeedFromFPGA_Res(HARDWARE_MOTOR_TYPE__MOTO_SCREW);*/
+ }
}
if (O900Millisecond_Tick)
@@ -417,11 +388,15 @@ uint32_t MillisecLoop(uint32_t tick)
}
if (Onesecond_Tick)
{
- for (Sensor_i = 0;Sensor_i < MAX_SYSTEM_DISPENSERS;Sensor_i++)
- CalculateDispenserPressure(Sensor_i);
+ for (Disp_i = 0;Disp_i < MAX_SYSTEM_DISPENSERS;Disp_i++)
+ {
+ CalculateDispenserPressure(Disp_i);
+ }
FPGA_GetAllDispensersValveBusyOCD();
if (watchdogCriticalAlarm == false)
+ {
Control_WD(ENABLE,50); //activate heaters/dispenser watchdog, 5 seconds
+ }
}
//ROM_IntMasterEnable();