diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-08-21 09:17:46 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-08-21 09:17:46 +0300 |
| commit | 193f7f5e096751da747b0fe9d145bd43a02d7340 (patch) | |
| tree | ce0aa138252ca76426fbbc84e1753d7e410011a9 /Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c | |
| parent | 98493042a5dace2535dd4343c047eaf1bd784ae3 (diff) | |
| parent | f468145c16b5c677201327feeb4f207c21df0b0b (diff) | |
| download | Tango-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.c | 81 |
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(); |
