diff --git a/MATLAB/MCU_STM32_Matlab/Drivers/CMSIS/arm_defines.h b/MATLAB/MCU_STM32_Matlab/Drivers/CMSIS/arm_defines.h index fae0001..097b0e0 100644 --- a/MATLAB/MCU_STM32_Matlab/Drivers/CMSIS/arm_defines.h +++ b/MATLAB/MCU_STM32_Matlab/Drivers/CMSIS/arm_defines.h @@ -106,3 +106,30 @@ #define __WFE() #define __DMB() + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) +#define __RBIT __rbit +#else +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ + return result; +} +#endif \ No newline at end of file diff --git a/MATLAB/MCU_Wrapper/run_mex.bat b/MATLAB/MCU_Wrapper/run_mex.bat index 849620d..cd685c5 100644 --- a/MATLAB/MCU_Wrapper/run_mex.bat +++ b/MATLAB/MCU_Wrapper/run_mex.bat @@ -84,6 +84,7 @@ set code_PERIPH=.\MCU_STM32_Matlab\stm32_matlab_conf.c^ .\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c^ .\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c^ .\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c^ + .\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c^ .\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c^ .\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c^ .\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c^ diff --git a/MATLAB/app_wrapper/app_init.c b/MATLAB/app_wrapper/app_init.c index e1f0f65..661aa7a 100644 --- a/MATLAB/app_wrapper/app_init.c +++ b/MATLAB/app_wrapper/app_init.c @@ -23,6 +23,7 @@ void app_init(void) { MX_TIM1_Init(); MX_TIM2_Init(); MX_TIM3_Init(); + MX_USART6_UART_Init(); MX_TIM8_Init(); MX_TIM5_Init(); MX_ADC3_Init(); diff --git a/MATLAB/app_wrapper/app_io.c b/MATLAB/app_wrapper/app_io.c index 0567512..588716b 100644 --- a/MATLAB/app_wrapper/app_io.c +++ b/MATLAB/app_wrapper/app_io.c @@ -125,6 +125,8 @@ void Write_AngleControl(real_T* Buffer, int ind_port) WriteOutputArray(upp.hangle.Iref, ind_port, nn++); WriteOutputArray(upp.hangle.Imeas, ind_port, nn++); WriteOutputArray(upp.hangle.alpha, ind_port, nn++); + WriteOutputArray(upp.hangle.f.CurrentLimited, ind_port, nn++); + WriteOutputArray(upp.hangle.f.RazgonDone, ind_port, nn++); #define get_diff(ccrx) ((long long)(upp.hangle.htim->Instance->ccrx) - upp.hangle.htim->Instance->CNT) diff --git a/MATLAB/upp_init.m b/MATLAB/upp_init.m index a3796d6..13b9063 100644 --- a/MATLAB/upp_init.m +++ b/MATLAB/upp_init.m @@ -2,6 +2,7 @@ clear all IadcMax = 53;%200;%53; VadcMax = 1216; +Va = 3; Ts = 5e-6; Vnom = 690; diff --git a/MATLAB/upp_r2023.slx b/MATLAB/upp_r2023.slx index b607c74..79d21f5 100644 Binary files a/MATLAB/upp_r2023.slx and b/MATLAB/upp_r2023.slx differ diff --git a/UPP/Core/Configs/upp_config.h b/UPP/Core/Configs/upp_config.h index 5c24c99..fe8a636 100644 --- a/UPP/Core/Configs/upp_config.h +++ b/UPP/Core/Configs/upp_config.h @@ -24,7 +24,7 @@ #define UPP_SET_DEFAULT ///< Установить настройки по умолчанию #define UPP_DISABLE_ERROR_BLOCK ///< Отключить блокировку УПП при ошибках -//#define UPP_SIMULATE_I ///< Симулировт токи (Iref/2) а не брать с АЦП +#define UPP_SIMULATE_I ///< Симулировт токи (Iref/2) а не брать с АЦП //#define UPP_DISABLE_PROTECT_BOARDPOWER ///< Отключить проверки питания плат (+24, +5 В) //#define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы diff --git a/UPP/Core/Configs/upp_defs.h b/UPP/Core/Configs/upp_defs.h index 2cb857a..375fe32 100644 --- a/UPP/Core/Configs/upp_defs.h +++ b/UPP/Core/Configs/upp_defs.h @@ -118,6 +118,11 @@ typedef struct */ typedef struct { + uint16_t NoConnectionPCH:1; + uint16_t NoInputVoltage:1; + uint16_t CurrentLimited:1; + uint16_t OverVoltage:1; + uint16_t UnderVoltage:1; }UPP_PUI_Warnings_t; /** @@ -145,17 +150,17 @@ typedef struct { uint16_t Fbc; /** @brief Адрес 12: Частота напряжения фазы BC, Герцы */ uint16_t Fca; /** @brief Адрес 13: Частота напряжения фазы CA, Герцы */ - uint16_t Temperature1; /** @brief Адрес 14: Температура радиатора тиристоров, Градусы Цельсия */ - uint16_t Temperature2; /** @brief Адрес 15: Температура радиатора тиристоров, Градусы Цельсия */ + uint16_t Trad; /** @brief Адрес 14: Температура радиатора тиристоров, Градусы Цельсия */ + uint16_t Tshkaf; /** @brief Адрес 15: Температура внутри шкафа УПП, Градусы Цельсия */ - uint16_t reserved[10]; /** @brief Адрес 16-49: Зарезервированны*/ + uint16_t reserved[34]; /** @brief Адрес 16-49: Зарезервированны */ union { uint16_t all; UPP_PUI_Warnings_t warn; - }Warnings; /** @brief Адрес 4: Частота напряжения на входе УПП */ + }Warnings; /** @brief Адрес 50: Предупреждения УПП */ } UPP_PUI_Values_t; /** @@ -230,8 +235,8 @@ typedef struct { #define I_A 1 #define I_B 2 /* Температуры */ -#define TEMP_1 0 -#define TEMP_2 1 +#define TEMP_RAD 0 +#define TEMP_SHKAF 1 /* Перерасчеты в тики */ #define PM_SLOW_PERIOD_CNT (PM_SLOW_PERIOD_US/PM_FAST_PERIOD_US) ///< Период обновления медленных расчетов тиках @ref PM_FAST_PERIOD_US diff --git a/UPP/Core/PowerMonitor/power_monitor.c b/UPP/Core/PowerMonitor/power_monitor.c index 6bca9cd..602259d 100644 --- a/UPP/Core/PowerMonitor/power_monitor.c +++ b/UPP/Core/PowerMonitor/power_monitor.c @@ -107,8 +107,8 @@ void PowerMonitor_SlowCalc(PowerMonitor_t *hpm) ADC_UpdateTemperatures(&hpm->adc); float t1 = hpm->adc.Data[ADC_CHANNEL_TEMP1]; float t2 = hpm->adc.Data[ADC_CHANNEL_TEMP2]; - meas->final.T[TEMP_1] = Filter_Process(&hpm->avg[AVG_TEMP1], t1); - meas->final.T[TEMP_2] = Filter_Process(&hpm->avg[AVG_TEMP2], t2); + meas->final.T[TEMP_RAD] = Filter_Process(&hpm->avg[AVG_TEMP1], t1); + meas->final.T[TEMP_SHKAF] = Filter_Process(&hpm->avg[AVG_TEMP2], t2); /* Расчет третьей фазы */ meas->slow.U[U_BC] = U_BC_calc(meas->slow.U[U_AB], meas->slow.U[U_CA]); @@ -198,8 +198,8 @@ void PowerMonitor_FastCalc(PowerMonitor_t *hpm) ADC_UpdateRegular(&hpm->adc); /* Заполняем Напряжения/Токи в о.е. */ - meas->fast.U[U_AB] = hpm->adc.Data[ADC_CHANNEL_UBA]/u_base; - meas->fast.U[U_CA] = hpm->adc.Data[ADC_CHANNEL_UAC]/u_base; + meas->fast.U[U_AB] = -hpm->adc.Data[ADC_CHANNEL_UBA]/u_base; + meas->fast.U[U_CA] = -hpm->adc.Data[ADC_CHANNEL_UAC]/u_base; // meas->fast.U[U_AB] = Filter_Process(&hpm->ufltr[U_AB], uba_fast); // meas->fast.U[U_CA] = Filter_Process(&hpm->ufltr[U_CA], uac_fast); meas->fast.U[U_BC] = U_BC_calc(meas->fast.U[U_AB], meas->fast.U[U_CA]); diff --git a/UPP/Core/PowerMonitor/power_protect.c b/UPP/Core/PowerMonitor/power_protect.c index 9b75079..9b46e87 100644 --- a/UPP/Core/PowerMonitor/power_protect.c +++ b/UPP/Core/PowerMonitor/power_protect.c @@ -214,11 +214,11 @@ void Protect_Misc(PowerMonitor_Measured_t *measure, UPP_PUI_Params_t *params, UP /*=============== ЗАЩИТЫ ПО ТЕМПЕРАТУРЕ ==================*/ - if(measure->final.T[TEMP_1] > lTerr) + if(measure->final.T[TEMP_RAD] > lTerr) { ERR_PRIVATE->temp_err = 1; } - else if (measure->final.T[TEMP_1] > lTwarn) + else if (measure->final.T[TEMP_RAD] > lTwarn) { ERR_PRIVATE->temp_warn = 1; } diff --git a/UPP/Core/UPP/angle_control.c b/UPP/Core/UPP/angle_control.c index 29deae4..7651ed8 100644 --- a/UPP/Core/UPP/angle_control.c +++ b/UPP/Core/UPP/angle_control.c @@ -78,11 +78,14 @@ void Angle_PID(Angle_Handle_t *hangle, float setpoint, float measurement, float hangle->Iref = Filter_Process(&hangle->refFilter, setpoint); hangle->f.RazgonDone = (fabsf(hangle->Iref - u2f(PARAM_PUI->Iref, 100)) < 0.1);; - - hangle->Imeas = measurement; - + hangle->Imeas = measurement; /* Ошибка регулирования = уставка - измеренное */ float err = hangle->Iref - hangle->Imeas; + + /* Определяем ограничение тока */ + // Если ошибка меньше порога, значит ток удерживается на заданном уровне Iref + float error_threshold = 0.1f*hangle->Iref; // Порог в 10% + hangle->f.CurrentLimited = (fabsf(err) > error_threshold) ? 0 : 1; /* ПИД регулирование */ float open_level = arm_pid_f32(&hangle->pid, err); // 0 - открыть максимально поздно, 1 - открыть макситмально рано diff --git a/UPP/Core/UPP/angle_control.h b/UPP/Core/UPP/angle_control.h index fe27daa..ac1e946 100644 --- a/UPP/Core/UPP/angle_control.h +++ b/UPP/Core/UPP/angle_control.h @@ -37,9 +37,10 @@ typedef struct FilterExp_t refFilter; ///< Фильтр для плавного нарастания регулирования struct { - unsigned Initialized : 1; ///< Структура инициализирована - unsigned Running : 3; ///< Сколько каналов запущено сейчас - unsigned RazgonDone : 1; ///< Флаг что идет разгон Iref + unsigned Initialized : 1; ///< Структура инициализирована + unsigned Running : 3; ///< Сколько каналов запущено сейчас + unsigned RazgonDone : 1; ///< Флаг что идет разгон Iref + unsigned CurrentLimited : 1; ///< Флаг что ток ограничивается в данный момент } f; ///< Флаги }Angle_Handle_t; diff --git a/UPP/Core/UPP/upp_main.c b/UPP/Core/UPP/upp_main.c index b039168..fd05954 100644 --- a/UPP/Core/UPP/upp_main.c +++ b/UPP/Core/UPP/upp_main.c @@ -19,7 +19,7 @@ UPP_t upp; RS_HandleTypeDef hmodbus_pui; HAL_StatusTypeDef res; // сюда сохраняется результат от выполения всяких функций -int dbg_polarity = 1; +int dbg_polarity = 0; /** * @brief Инициализация УПП. @@ -136,8 +136,6 @@ int UPP_While(void) #ifdef UPP_SIMULATE_I // симулируем токи upp.pm.measured.final.Iamp = upp.hangle.Iref/2; - // При симуляции тока не включаем его проверку - razgon_done = 0; #endif // if(test_cen) diff --git a/UPP/Core/UPP/upp_params.c b/UPP/Core/UPP/upp_params.c index 3cd2944..a18430b 100644 --- a/UPP/Core/UPP/upp_params.c +++ b/UPP/Core/UPP/upp_params.c @@ -470,8 +470,8 @@ void UPP_Params_SetDefault(int pui_default, int internal_default) PARAM_INTERNAL->adc.ADC_Zero[ADC_CHANNEL_UAC] = ADC_U_ZERO_DEFAULT; PARAM_INTERNAL->adc.ADC_Zero[ADC_CHANNEL_IC] = ADC_I_ZERO_DEFAULT; PARAM_INTERNAL->adc.ADC_Zero[ADC_CHANNEL_IA] = ADC_I_ZERO_DEFAULT; - PARAM_INTERNAL->adc.Temp_Zero[TEMP_1] = ADC_T_ZERO_DEFAULT; - PARAM_INTERNAL->adc.Temp_Zero[TEMP_2] = ADC_T_ZERO_DEFAULT; + PARAM_INTERNAL->adc.Temp_Zero[TEMP_RAD] = ADC_T_ZERO_DEFAULT; + PARAM_INTERNAL->adc.Temp_Zero[TEMP_SHKAF] = ADC_T_ZERO_DEFAULT; PARAM_INTERNAL->pwm.PhaseMask = 7; // (все три фазы) PARAM_INTERNAL->pwm.Frequency = PWM_THYR_FREQUENCY_HZ_DEFAULT; diff --git a/UPP/Core/UPP/upp_status.c b/UPP/Core/UPP/upp_status.c index eebab4a..31d99bc 100644 --- a/UPP/Core/UPP/upp_status.c +++ b/UPP/Core/UPP/upp_status.c @@ -15,16 +15,34 @@ void UPP_Status_Handler(void) GPIO_LED_Dynamic_Handle(&UPP_LEDS.green2); GPIO_LED_Dynamic_Handle(&UPP_LEDS.red); + MB_DATA.InRegs.pui.Error = upp.errors->common; + MB_DATA.InRegs.pui.WorkMode = upp.workmode; - MB_DATA.InRegs.pui.Uall = upp.pm.measured.final.Uamp * MB_INTERNAL.param.nominal.U; + MB_DATA.InRegs.pui.Uall = upp.pm.measured.final.Uamp * MB_INTERNAL.param.nominal.U; MB_DATA.InRegs.pui.Uab = upp.pm.measured.final.U[U_AB] * MB_INTERNAL.param.nominal.U; MB_DATA.InRegs.pui.Ubc = upp.pm.measured.final.U[U_BC] * MB_INTERNAL.param.nominal.U; MB_DATA.InRegs.pui.Uca = upp.pm.measured.final.U[U_CA] * MB_INTERNAL.param.nominal.U; MB_DATA.InRegs.pui.Iall = upp.pm.measured.final.Iamp * MB_INTERNAL.param.nominal.I; - MB_DATA.InRegs.pui.Ia = upp.pm.measured.final.U[I_A] * MB_INTERNAL.param.nominal.I; - MB_DATA.InRegs.pui.Ib = upp.pm.measured.final.U[I_B] * MB_INTERNAL.param.nominal.I; - MB_DATA.InRegs.pui.Ic = upp.pm.measured.final.U[I_C] * MB_INTERNAL.param.nominal.I; + MB_DATA.InRegs.pui.Ia = upp.pm.measured.final.I[I_A] * MB_INTERNAL.param.nominal.I; + MB_DATA.InRegs.pui.Ib = upp.pm.measured.final.I[I_B] * MB_INTERNAL.param.nominal.I; + MB_DATA.InRegs.pui.Ic = upp.pm.measured.final.I[I_C] * MB_INTERNAL.param.nominal.I; + + MB_DATA.InRegs.pui.Fall = upp.pm.measured.final.Fmean * 10; + MB_DATA.InRegs.pui.Fab = upp.pm.measured.final.F[U_AB] * 10; + MB_DATA.InRegs.pui.Fbc = upp.pm.measured.final.F[U_BC] * 10; + MB_DATA.InRegs.pui.Fca = upp.pm.measured.final.F[U_CA] * 10; + + + MB_DATA.InRegs.pui.Trad = upp.pm.measured.final.T[TEMP_RAD] * 10; + MB_DATA.InRegs.pui.Tshkaf = upp.pm.measured.final.T[TEMP_SHKAF] * 10; + + MB_DATA.InRegs.pui.Warnings.warn.NoConnectionPCH = 0; //todo + MB_DATA.InRegs.pui.Warnings.warn.NoInputVoltage = !upp.pm.f.isU; + MB_DATA.InRegs.pui.Warnings.warn.CurrentLimited = upp.hangle.f.CurrentLimited; + MB_DATA.InRegs.pui.Warnings.warn.OverVoltage = !upp.errors->pui.err.OverVoltage; + MB_DATA.InRegs.pui.Warnings.warn.UnderVoltage = !upp.errors->pui.err.UnderVoltage; + if(GPIO_Read_Switch(&UPP_DIN.Pusk)) { diff --git a/UPP/MDK-ARM/UPP.uvoptx b/UPP/MDK-ARM/UPP.uvoptx index 5f3f0dc..9e0ba89 100644 --- a/UPP/MDK-ARM/UPP.uvoptx +++ b/UPP/MDK-ARM/UPP.uvoptx @@ -154,7 +154,7 @@ 0 351 1 -
134232758
+
134232798
0 0 0 @@ -242,6 +242,11 @@ 1 hmodbus1 + + 15 + 1 + dbg_polarity + @@ -262,7 +267,7 @@ 3 2 - test_err + upp.pm.measured 4 @@ -314,6 +319,21 @@ 2 MB_DATA,0x0A + + 14 + 2 + upp.errors->pui.err + + + 15 + 2 + MB_INTERNAL.param.nominal.U,0x0A + + + 16 + 2 + MB_INTERNAL.param.nominal.U + 0 @@ -362,6 +382,10 @@ System Viewer\ADC3 35905 + + System Viewer\TIM1 + 35904 + 1 @@ -1044,7 +1068,7 @@ Application/User/Core - 1 + 0 0 0 0 @@ -1220,7 +1244,7 @@ MyLibs - 1 + 0 0 0 0 @@ -1324,7 +1348,7 @@ Modbus - 1 + 0 0 0 0 @@ -1504,6 +1528,54 @@ 0 0 + + 7 + 71 + 1 + 0 + 0 + 0 + ..\AllLibs\ExtMemory\Src\set_to_mem.c + set_to_mem.c + 0 + 0 + + + 7 + 72 + 5 + 0 + 0 + 0 + ..\AllLibs\ExtMemory\Inc\set_to_mem.h + set_to_mem.h + 0 + 0 + + + 7 + 73 + 1 + 0 + 0 + 0 + ..\AllLibs\ExtMemory\Src\params_flash.c + params_flash.c + 0 + 0 + + + 7 + 74 + 5 + 0 + 0 + 0 + ..\AllLibs\ExtMemory\Inc\params_flash.h + params_flash.h + 0 + 0 + @@ -1514,7 +1586,7 @@ 0 8 - 71 + 75 1 0 0 @@ -1526,7 +1598,7 @@ 8 - 72 + 76 1 0 0 @@ -1538,7 +1610,7 @@ 8 - 73 + 77 1 0 0 @@ -1550,7 +1622,7 @@ 8 - 74 + 78 1 0 0 @@ -1562,7 +1634,7 @@ 8 - 75 + 79 1 0 0 @@ -1582,7 +1654,7 @@ 0 9 - 76 + 80 1 0 0 @@ -1594,7 +1666,7 @@ 9 - 77 + 81 1 0 0 @@ -1606,7 +1678,7 @@ 9 - 78 + 82 1 0 0 @@ -1618,7 +1690,7 @@ 9 - 79 + 83 1 0 0 @@ -1630,7 +1702,7 @@ 9 - 80 + 84 1 0 0 @@ -1642,7 +1714,7 @@ 9 - 81 + 85 1 0 0 @@ -1654,7 +1726,7 @@ 9 - 82 + 86 1 0 0 @@ -1666,7 +1738,7 @@ 9 - 83 + 87 1 0 0 @@ -1678,7 +1750,7 @@ 9 - 84 + 88 1 0 0 @@ -1690,7 +1762,7 @@ 9 - 85 + 89 1 0 0 @@ -1702,7 +1774,7 @@ 9 - 86 + 90 1 0 0 @@ -1714,7 +1786,7 @@ 9 - 87 + 91 1 0 0 @@ -1726,7 +1798,7 @@ 9 - 88 + 92 1 0 0 @@ -1738,7 +1810,7 @@ 9 - 89 + 93 1 0 0 @@ -1750,7 +1822,7 @@ 9 - 90 + 94 1 0 0 @@ -1762,7 +1834,7 @@ 9 - 91 + 95 1 0 0 @@ -1774,7 +1846,7 @@ 9 - 92 + 96 1 0 0 @@ -1786,7 +1858,7 @@ 9 - 93 + 97 1 0 0 @@ -1798,7 +1870,7 @@ 9 - 94 + 98 1 0 0 @@ -1810,7 +1882,7 @@ 9 - 95 + 99 1 0 0 @@ -1822,7 +1894,7 @@ 9 - 96 + 100 1 0 0 @@ -1834,7 +1906,7 @@ 9 - 97 + 101 1 0 0 @@ -1846,7 +1918,7 @@ 9 - 98 + 102 1 0 0 @@ -1858,7 +1930,7 @@ 9 - 99 + 103 1 0 0 @@ -1878,7 +1950,7 @@ 0 10 - 100 + 104 1 0 0 @@ -1898,7 +1970,7 @@ 0 11 - 101 + 105 2 0 0 @@ -1910,7 +1982,7 @@ 11 - 102 + 106 2 0 0 diff --git a/UPP/MDK-ARM/UPP.uvprojx b/UPP/MDK-ARM/UPP.uvprojx index d0058d3..7ea1641 100644 --- a/UPP/MDK-ARM/UPP.uvprojx +++ b/UPP/MDK-ARM/UPP.uvprojx @@ -1111,6 +1111,75 @@ ExtMemory + + + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + + + + + + + + + memspi.c @@ -1122,6 +1191,26 @@ 1 ..\AllLibs\ExtMemory\Src\memspi_core.c + + set_to_mem.c + 1 + ..\AllLibs\ExtMemory\Src\set_to_mem.c + + + set_to_mem.h + 5 + ..\AllLibs\ExtMemory\Inc\set_to_mem.h + + + params_flash.c + 1 + ..\AllLibs\ExtMemory\Src\params_flash.c + + + params_flash.h + 5 + ..\AllLibs\ExtMemory\Inc\params_flash.h + @@ -2415,6 +2504,26 @@ 1 ..\AllLibs\ExtMemory\Src\memspi_core.c + + set_to_mem.c + 1 + ..\AllLibs\ExtMemory\Src\set_to_mem.c + + + set_to_mem.h + 5 + ..\AllLibs\ExtMemory\Inc\set_to_mem.h + + + params_flash.c + 1 + ..\AllLibs\ExtMemory\Src\params_flash.c + + + params_flash.h + 5 + ..\AllLibs\ExtMemory\Inc\params_flash.h + diff --git a/Информация для программиста (УПП СП СЭД)/Modbus Карта.docx b/Информация для программиста (УПП СП СЭД)/Modbus Карта.docx index 3fbecf6..d798307 100644 Binary files a/Информация для программиста (УПП СП СЭД)/Modbus Карта.docx and b/Информация для программиста (УПП СП СЭД)/Modbus Карта.docx differ