From 3614e8f8c3ab983695a617dd59f3314c3b898608 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Tue, 11 Nov 2025 13:05:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20=D1=81=20=D1=88=D1=83=D0=BC=D0=BD=D1=8B?= =?UTF-8?q?=D0=BC=20=D1=81=D0=B8=D0=B3=D0=BD=D0=B0=D0=BB=D0=BE=D0=BC=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=90=D0=A6=D0=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit И на рабочем компе mexw64 не блокируется... --- MATLAB/MCU_Wrapper/run_mex.bat | 2 +- MATLAB/app_wrapper/app_io.c | 2 +- MATLAB/upp_r2023.slx | Bin 67059 -> 68022 bytes UPP/AllLibs/MyLibs | 2 +- UPP/Core/Configs/mylibs_include.h | 85 +---------------------------- UPP/Core/PowerMonitor/adc_tools.c | 35 ++++++------ UPP/Core/PowerMonitor/adc_tools.h | 19 ++++--- UPP/Core/PowerMonitor/zero_cross.c | 8 +++ UPP/Core/UPP/upp_main.c | 4 +- UPP/MDK-ARM/UPP.uvprojx | 4 +- 10 files changed, 44 insertions(+), 117 deletions(-) diff --git a/MATLAB/MCU_Wrapper/run_mex.bat b/MATLAB/MCU_Wrapper/run_mex.bat index 8d7bb2c..fcf8cd9 100644 --- a/MATLAB/MCU_Wrapper/run_mex.bat +++ b/MATLAB/MCU_Wrapper/run_mex.bat @@ -148,7 +148,7 @@ echo =========================== :: 1. ПРЕЖДЕ ЧЕМ КОМПИЛИРОВАТЬ - ВЫГРУЗИТЬ СТАРЫЙ ФАЙЛ :: 2. Компиляция с флагами для MSVC -:: set LINK_EMBEDDED=/BASE:0x10000000 /FIXED:NO /FILEALIGN:0x1000 /FORCE:MULTIPLE /DYNAMICBASE:NO +:: set LINK_EMBEDDED=/BASE:0x00000000 /FIXED:NO /FILEALIGN:0x1000 /FORCE:MULTIPLE /DYNAMICBASE:NO set C_EMBEDDED="-w" mex %output% %defines% %includes% %codes% %debug% CFLAGS="$CFLAGS %C_EMBEDDED%" LINKFLAGS="$LINKFLAGS %LINK_EMBEDDED%" echo %DATE% %TIME% diff --git a/MATLAB/app_wrapper/app_io.c b/MATLAB/app_wrapper/app_io.c index 17fe31a..b7453ab 100644 --- a/MATLAB/app_wrapper/app_io.c +++ b/MATLAB/app_wrapper/app_io.c @@ -59,7 +59,7 @@ void app_writeOutputBuffer(real_T* Buffer) { } - extern ADC_Period_t adc; + extern ADC_Periodic_t adc; for(int i = 0; i < 6; i++) { WriteOutputArray(adc.Data[i], 1, i); diff --git a/MATLAB/upp_r2023.slx b/MATLAB/upp_r2023.slx index 191781aa4d5e9f0a95417ff429cf17a1b5a4121f..e5540e57a0d995d79786ff908bc829251c0c6c34 100644 GIT binary patch delta 57715 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 z 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�ApU^gpu`1Zfq&Dsm#xd+gRl4 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.Initialized) -static void ADC_EnableAllFilters(ADC_Period_t *adc) +static void ADC_EnableAllFilters(ADC_Periodic_t *adc) { for(int i = 0; i < ADC_NUMB_OF_CHANNELS; i++) { - FILTER_GET_STATE(&adc->filter[i]) = FILTER_ENABLE; + Filter_Start(&adc->filter[i]); } } -static void ADC_InitAllFilters(ADC_Period_t *adc, int coef) +static void ADC_InitAllFilters(ADC_Periodic_t *adc) { for(int i = 0; i < ADC_NUMB_OF_CHANNELS; i++) { - FilterAverageInt_Init(&adc->filter[i], coef); + Filter_Init(&adc->filter[i], Filter_Coef); } FilterLUTInt_Init(&adc->temp_filter[0], @@ -41,7 +41,7 @@ static void ADC_InitAllFilters(ADC_Period_t *adc, int coef) * @param hadc Указатель на HAL хендл АЦП * @return HAL Status. */ -HAL_StatusTypeDef ADC_Init(ADC_Period_t *adc, TIM_HandleTypeDef *htim, ADC_HandleTypeDef *hadc) +HAL_StatusTypeDef ADC_Init(ADC_Periodic_t *adc, TIM_HandleTypeDef *htim, ADC_HandleTypeDef *hadc) { HAL_StatusTypeDef res; if(check_null_ptr_2(htim, hadc)) @@ -50,8 +50,7 @@ HAL_StatusTypeDef ADC_Init(ADC_Period_t *adc, TIM_HandleTypeDef *htim, ADC_Handl adc->htim = htim; adc->hadc = hadc; - ADC_InitAllFilters(adc, 10); - + ADC_InitAllFilters(adc); adc->f.AdcRunning = 0; adc->f.DataReady = 0; @@ -68,7 +67,7 @@ HAL_StatusTypeDef ADC_Init(ADC_Period_t *adc, TIM_HandleTypeDef *htim, ADC_Handl * @param levelMax Максимальный уровень АЦП (в квантах АЦП) * @return HAL Status. */ -HAL_StatusTypeDef ADC_ConfigChannel(ADC_Period_t *adc, int ChNumb, uint16_t levelZero, float valueMax, uint16_t levelMax) +HAL_StatusTypeDef ADC_ConfigChannel(ADC_Periodic_t *adc, int ChNumb, uint16_t levelZero, float valueMax, uint16_t levelMax) { HAL_StatusTypeDef res; if(assert_adc(adc)) @@ -89,7 +88,7 @@ HAL_StatusTypeDef ADC_ConfigChannel(ADC_Period_t *adc, int ChNumb, uint16_t leve * @return HAL Status. * @details Запускает АЦП с частотой дискретизации на которую настроен таймер adc_tim. */ -HAL_StatusTypeDef ADC_Start(ADC_Period_t *adc, uint16_t Period) +HAL_StatusTypeDef ADC_Start(ADC_Periodic_t *adc, uint16_t Period) { HAL_StatusTypeDef res; if(assert_adc(adc)) @@ -111,9 +110,9 @@ HAL_StatusTypeDef ADC_Start(ADC_Period_t *adc, uint16_t Period) return res; } - //ADC_EnableAllFilters(adc); - FILTER_GET_STATE(&adc->temp_filter[0]) = FILTER_ENABLE; - FILTER_GET_STATE(&adc->temp_filter[1]) = FILTER_ENABLE; + ADC_EnableAllFilters(adc); + Filter_Start(&adc->temp_filter[0]); + Filter_Start(&adc->temp_filter[1]); return res; } @@ -123,7 +122,7 @@ HAL_StatusTypeDef ADC_Start(ADC_Period_t *adc, uint16_t Period) * @return HAL Status. * @details По факту остановка таймера, который запускает АЦП. Сам АЦП продолжает работу. */ -HAL_StatusTypeDef ADC_Stop(ADC_Period_t *adc) +HAL_StatusTypeDef ADC_Stop(ADC_Periodic_t *adc) { if(assert_adc(adc)) return HAL_ERROR; @@ -139,7 +138,7 @@ HAL_StatusTypeDef ADC_Stop(ADC_Period_t *adc) * @details По факту остановка таймера, который запускает АЦП. Сам АЦП продолжает работу. * @note Вызывается в DMA2_Stream0_IRQHandler() для обработки всего, что пришло по DMA. */ -HAL_StatusTypeDef ADC_Handle(ADC_Period_t *adc) +HAL_StatusTypeDef ADC_Handle(ADC_Periodic_t *adc) { if(assert_adc(adc)) return HAL_ERROR; @@ -151,10 +150,10 @@ HAL_StatusTypeDef ADC_Handle(ADC_Period_t *adc) // Фильтрация от шумов для всех каналов for(int i = 0; i < ADC_NUMB_OF_CHANNELS; i++) { - if(FILTER_GET_STATE(&adc->filter[i]) == FILTER_ENABLE) + if(Filter_GetState(&adc->filter[i]) == FILTER_ENABLE) { // заменяем сырое на отфильтровоное сырое - raw[i] = FilterAverageInt_Process(&adc->filter[i], raw[i]); + raw[i] = Filter_Process(&adc->filter[i], raw[i]); } } // Перерасчеты Напряжений/Токов в единицы измерения @@ -182,7 +181,7 @@ HAL_StatusTypeDef ADC_Handle(ADC_Period_t *adc) /** * @brief Сбор статистики. */ -void ADC_UpdateStatistics(ADC_Period_t *adc, uint8_t channel, float value) +void ADC_UpdateStatistics(ADC_Periodic_t *adc, uint8_t channel, float value) { if(assert_adc(adc)) return; @@ -221,7 +220,7 @@ void ADC_UpdateStatistics(ADC_Period_t *adc, uint8_t channel, float value) /** * @brief Сброс статистики. */ -void ADC_ResetStatistics(ADC_Period_t *adc, uint8_t channel) +void ADC_ResetStatistics(ADC_Periodic_t *adc, uint8_t channel) { if (channel < ADC_NUMB_OF_REGULAR_CHANNELS) { memset(&adc->Stat[channel], 0, sizeof(ADC_Statistics)); diff --git a/UPP/Core/PowerMonitor/adc_tools.h b/UPP/Core/PowerMonitor/adc_tools.h index a937322..bd22553 100644 --- a/UPP/Core/PowerMonitor/adc_tools.h +++ b/UPP/Core/PowerMonitor/adc_tools.h @@ -40,6 +40,11 @@ static const int32_t adc_temp_vals[] = ADC_TEMPERATURES; static const int32_t adc_temp_quants[] = ADC_TEMPERATURES_QUANTS; +#define Filter_t FilterAverageInt_t +#define Filter_Init FilterAverageInt_Init +#define Filter_Process FilterAverageInt_Process +#define Filter_Coef 10, FILTER_MODE_DEFAULT + /** * @brief Коэфициенты канала АЦП для пересчета в единицы измерения */ @@ -77,7 +82,7 @@ typedef struct // Data and calculation uint16_t RawData[ADC_NUMB_OF_CHANNELS]; ///< Сырые значения АЦП ADC_Coefs_t Coefs[ADC_NUMB_OF_REGULAR_CHANNELS]; ///< Коэффициенты @ref ADC_Coefs_t для регулярных каналов (не температуры) - FilterAverageInt_t filter[ADC_NUMB_OF_CHANNELS]; ///< Фильтр от шумов АЦП + Filter_t filter[ADC_NUMB_OF_CHANNELS]; ///< Фильтр от шумов АЦП FilterLUTInt_t temp_filter[2]; ///< Коррекция нелинейности датчиков температуры float Data[ADC_NUMB_OF_CHANNELS]; ///< Пересчитанные значения АЦП (в Вольтах/Амперах) @@ -90,21 +95,21 @@ typedef struct unsigned DataReady:1; }f; ///< Флаги uint32_t LastTick; // Время последнего преобразования -}ADC_Period_t; +}ADC_Periodic_t; /* Инициализация периодического АЦП */ -HAL_StatusTypeDef ADC_Init(ADC_Period_t *adc, TIM_HandleTypeDef *htim, ADC_HandleTypeDef *hadc); +HAL_StatusTypeDef ADC_Init(ADC_Periodic_t *adc, TIM_HandleTypeDef *htim, ADC_HandleTypeDef *hadc); /* Конфигуарция канала АЦП. */ -HAL_StatusTypeDef ADC_ConfigChannel(ADC_Period_t *adc, int ChNumb, uint16_t levelZero, float valueMax, uint16_t levelMax); +HAL_StatusTypeDef ADC_ConfigChannel(ADC_Periodic_t *adc, int ChNumb, uint16_t levelZero, float valueMax, uint16_t levelMax); /* Запуск АЦП. */ -HAL_StatusTypeDef ADC_Start(ADC_Period_t *adc, uint16_t Period); +HAL_StatusTypeDef ADC_Start(ADC_Periodic_t *adc, uint16_t Period); /* Остановка АЦП. */ -HAL_StatusTypeDef ADC_Stop(ADC_Period_t *adc); +HAL_StatusTypeDef ADC_Stop(ADC_Periodic_t *adc); /* Остановка АЦП . */ -HAL_StatusTypeDef ADC_Handle(ADC_Period_t *adc); +HAL_StatusTypeDef ADC_Handle(ADC_Periodic_t *adc); #endif //_ADC_TOOLS_H_ diff --git a/UPP/Core/PowerMonitor/zero_cross.c b/UPP/Core/PowerMonitor/zero_cross.c index fe64962..6322067 100644 --- a/UPP/Core/PowerMonitor/zero_cross.c +++ b/UPP/Core/PowerMonitor/zero_cross.c @@ -102,6 +102,14 @@ void ZC_ProcessChannel(ZeroCross_Handle_t *zc, uint8_t channel, float value, uin ZC_Channel_t *zc_ch = &zc->Channel[channel]; zc_ch->CurrentValue = value; + + // Фильтрация дребезга + if(zc_ch->DebounceCounter) + { + zc_ch->DebounceCounter--; + return; + } + // Детектирование rising edge (отрицательное -> положительное) if ((zc_ch->LastValue <= -zc->Hysteresis) && (value >= zc->Hysteresis)) { diff --git a/UPP/Core/UPP/upp_main.c b/UPP/Core/UPP/upp_main.c index c370f74..47b7416 100644 --- a/UPP/Core/UPP/upp_main.c +++ b/UPP/Core/UPP/upp_main.c @@ -12,7 +12,7 @@ #include "adc_tools.h" #include "zero_cross.h" -ADC_Period_t adc; +ADC_Periodic_t adc; ZeroCross_Handle_t hzc; uint32_t ZC_Detected[ZC_MAX_CHANNELS] = {0}; #define ADC_CHANNEL_UBA 0 @@ -34,8 +34,6 @@ int UPP_Init(void) ADC_ConfigChannel(&adc, ADC_CHANNEL_UAC, 2048, 1216, 4095); ADC_ConfigChannel(&adc, ADC_CHANNEL_IC, 2048, 53, 4095); ADC_ConfigChannel(&adc, ADC_CHANNEL_IA, 2048, 53, 4095); - ADC_ConfigChannel(&adc, ADC_CHANNEL_TEMP1, 2554, 90, 4095); - ADC_ConfigChannel(&adc, ADC_CHANNEL_TEMP2, 2554, 90, 4095); ZC_Init(&hzc, ZC_MAX_CHANNELS, 10, 3); ZC_ConfigChannel(&hzc, 0, ZC_BOTH_EDGES); diff --git a/UPP/MDK-ARM/UPP.uvprojx b/UPP/MDK-ARM/UPP.uvprojx index b6b4547..e3192a8 100644 --- a/UPP/MDK-ARM/UPP.uvprojx +++ b/UPP/MDK-ARM/UPP.uvprojx @@ -17,8 +17,8 @@ STM32F427ZGTx STMicroelectronics - Keil.STM32F4xx_DFP.2.16.0 - http://www.keil.com/pack/ + Keil.STM32F4xx_DFP.2.17.1 + https://www.keil.com/pack/ IRAM(0x20000000-0x2002FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) FPU2 CPUTYPE("Cortex-M4") TZ