diff --git a/DOCS/Doxyfile b/DOCS/Doxyfile index 56d6d24..754d090 100644 --- a/DOCS/Doxyfile +++ b/DOCS/Doxyfile @@ -548,7 +548,7 @@ EXTRACT_PACKAGE = NO # included in the documentation. # The default value is: NO. -EXTRACT_STATIC = NO +EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, diff --git a/MCU_Wrapper/mcu_wrapper.c b/MCU_Wrapper/mcu_wrapper.c index e6bbebb..ef96489 100644 --- a/MCU_Wrapper/mcu_wrapper.c +++ b/MCU_Wrapper/mcu_wrapper.c @@ -15,10 +15,6 @@ SIM__MCUHandleTypeDef hmcu; ///< Хендл для управления потоком программы МК -double SystemClockDouble = 0; ///< Счетчик в формате double для точной симуляции системных тиков С промежуточными значений -uint64_t SystemClock; ///< Счетчик тактов для симуляции системных тиков (в целочисленном формате) -double SystemClock_step = 0; ///< Шаг тиков для их симуляции, в формате double - /** MCU_WRAPPER * @} */ @@ -52,6 +48,10 @@ unsigned __stdcall MCU_App_Thread(void) { */ void MCU_Step_Simulation(SimStruct* S, time_T time) { + hmcu.SystemClockDouble += hmcu.SystemClock_step; // emulate core clock + hmcu.SystemClock = hmcu.SystemClockDouble; + hmcu.SimTime = time; + MCU_readInputs(S); // считывание портов MCU_Periph_Simulation(); // simulate peripheral @@ -72,9 +72,7 @@ void MCU_Step_Simulation(SimStruct* S, time_T time) */ void MCU_Periph_Simulation(void) { - SystemClockDouble += SystemClock_step; // emulate core clock - SystemClock = SystemClockDouble; - uwTick = SystemClock / (SystemCoreClock / 1000); + uwTick = hmcu.SystemClock / (MCU_CORE_CLOCK / 1000); Simulate_TIMs(); } @@ -152,7 +150,7 @@ void SIM_Initialize_Simulation(void) Initialize_Periph_Sim(); /* wrapper initialization */ - SystemClock_step = SystemCoreClock * hmcu.SIM_Sample_Time; // set system clock step + hmcu.SystemClock_step = MCU_CORE_CLOCK * hmcu.SIM_Sample_Time; // set system clock step } /* MCU WRAPPER DEINITIALIZATION */ /** diff --git a/MCU_Wrapper/mcu_wrapper_conf.h b/MCU_Wrapper/mcu_wrapper_conf.h index 2e127b3..2c4a26a 100644 --- a/MCU_Wrapper/mcu_wrapper_conf.h +++ b/MCU_Wrapper/mcu_wrapper_conf.h @@ -58,6 +58,7 @@ #define OUT_PORT_NUMB PORT_NUMB ///< number of output ports #define DISC_STATES_WIDTH PORT_WIDTH*PORT_NUMB ///< width of discrete states array +#define MCU_CORE_CLOCK SystemCoreClock /** WRAPPER_CONF * @} */ @@ -82,6 +83,10 @@ typedef struct { unsigned fMCU_Stop : 1; ///< флаг для выхода из потока программы МК double SIM_Sample_Time; ///< sample time of simulation + double SystemClockDouble; ///< Счетчик в формате double для точной симуляции системных тиков С промежуточными значений + uint64_t SystemClock; ///< Счетчик тактов для симуляции системных тиков (в целочисленном формате) + double SystemClock_step; ///< Шаг тиков для их симуляции, в формате double + double SimTime; }SIM__MCUHandleTypeDef; extern SIM__MCUHandleTypeDef hmcu; // extern для видимости переменной во всех файлах diff --git a/mcu_test_r2021a.slx b/mcu_test_r2021a.slx index 85db8b9..152fe68 100644 Binary files a/mcu_test_r2021a.slx and b/mcu_test_r2021a.slx differ