//-------------------------------------------------------// // Project Code : CodeLibrary // File Name : TimeSharing.cpp // Created on : 2019. 06. 07 // Description : // Author : KimJeongWoo // Last modified Date : //-------------------------------------------------------// #include "TimeSharing.h" float Tsamp = 0; float T250us = 0; float T500us = 0; float T1ms = 0; float T2ms = 0; float T10ms = 0; float T100ms = 0; float T500ms = 0; float T1s = 0; float INV_Tsamp = 0; float INV_T250us = 0; float INV_T500us = 0; float INV_T1ms = 0; float INV_T2ms = 0; float INV_T10ms = 0; float INV_T100ms = 0; float INV_T500ms = 0; float INV_T1s = 0; float INV_RMS_T100ms = 0; float INV_RMS_T500ms = 0; struct sTiME_SHARING OS_Time; void InitTimeSharing(float BaseFreq) { OS_Time.Init(BaseFreq); Tsamp = OS_Time.Tsamp.Prd; T250us = OS_Time.T250us.Prd; T500us = OS_Time.T500us.Prd; T1ms = OS_Time.T1ms.Prd; T2ms = OS_Time.T2ms.Prd; T10ms = OS_Time.T10ms.Prd; T100ms = OS_Time.T100ms.Prd; T500ms = OS_Time.T500ms.Prd; INV_Tsamp = OS_Time.Tsamp.Inverse; INV_T250us = OS_Time.T250us.Inverse; INV_T500us = OS_Time.T500us.Inverse; INV_T1ms = OS_Time.T1ms.Inverse; INV_T2ms = OS_Time.T2ms.Inverse; INV_T10ms = OS_Time.T10ms.Inverse; INV_T100ms = OS_Time.T100ms.Inverse; INV_T500ms = OS_Time.T500ms.Inverse; INV_RMS_T500ms = 1 / (T500ms / Tsamp); INV_RMS_T100ms = 1 / (T100ms / Tsamp); } void sTiME_SHARING :: Init(float BaseFreq) { BaseTime = (1 / BaseFreq); Tsamp.Prd = BaseTime; T250us.Prd = 250e-6; T500us.Prd = 500e-6; T1ms.Prd = 1e-3; T2ms.Prd = 2e-3; T10ms.Prd = 10e-3; T100ms.Prd = 100e-3; T500ms.Prd = 500e-3; T1s.Prd = 1.; Tsamp.Inverse = 1. / Tsamp.Prd; T250us.Inverse = 1. / T250us.Prd; T500us.Inverse = 1. / T500us.Prd; T1ms.Inverse = 1. / T1ms.Prd; T2ms.Inverse = 1. / T2ms.Prd; T10ms.Inverse = 1. / T10ms.Prd; T100ms.Inverse = 1. / T100ms.Prd; T500ms.Inverse = 1. / T500ms.Prd; T1s.Inverse = 1. / T1s.Prd; T250us.Flag = 0; T500us.Flag = 0; T1ms.Flag = 0; T2ms.Flag = 0; T10ms.Flag = 0; T100ms.Flag = 0; T500ms.Flag = 0; T1s.Flag = 0; T250us.Tick = T250us.SetTick = (int) (T250us.Prd * Tsamp.Inverse + 0.5 ); T500us.Tick = T500us.SetTick = (int) (T500us.Prd * Tsamp.Inverse + 0.5 ); T1ms.Tick = T1ms.SetTick = (int) (T1ms.Prd * Tsamp.Inverse + 0.5 ); T2ms.Tick = T2ms.SetTick = (int) (T2ms.Prd * Tsamp.Inverse + 0.5 ); T10ms.Tick = T10ms.SetTick = (int) (T10ms.Prd * Tsamp.Inverse + 0.5 ); T100ms.Tick = T100ms.SetTick = (int) (T100ms.Prd * Tsamp.Inverse + 0.5 ); T500ms.Tick = T500ms.SetTick = (int) (T500ms.Prd * Tsamp.Inverse + 0.5 ); T1s.Tick = T1s.SetTick = (int) (T1s.Prd * Tsamp.Inverse + 0.5 ); } void sTiME_SHARING::Sharing(void) { if ((T250us.Tick--) <= 0) { T250us.Flag = 1; T250us.Tick = T250us.SetTick - 1; } if ((T500us.Tick--) <= 0) { T500us.Flag = 1; T500us.Tick = T500us.SetTick - 1; } if ((T1ms.Tick--) <= 0) { T1ms.Flag = 1; T1ms.Tick = T1ms.SetTick - 1; } if ((T2ms.Tick--) <= 0) { T2ms.Flag = 1; T2ms.Tick = T2ms.SetTick - 1; } if ((T10ms.Tick--) <= 0) { T10ms.Flag = 1; T10ms.Tick = T10ms.SetTick - 1; } if ((T100ms.Tick--) <= 0) { T100ms.Flag = 1; T100ms.Tick = T100ms.SetTick - 1; } if ((T500ms.Tick--) <= 0) { T500ms.Flag = 1; T500ms.Tick = T500ms.SetTick - 1; } if ((T1s.Tick--) <= 0) { T1s.Flag = 1; T1s.Tick = T1s.SetTick - 1; } }