рефакторинг и описание параметров
добавлен, но не запущен модбас фиксы симуляции и тесты с двигателем в матлаб
This commit is contained in:
@@ -224,61 +224,50 @@ typedef enum
|
||||
|
||||
#define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))
|
||||
|
||||
/* Use of CMSIS compiler intrinsics for register exclusive access */
|
||||
/* Atomic 32-bit register access macro to set one or several bits */
|
||||
/* Atomic operations for MinGW/GCC */
|
||||
/* Atomic 32-bit register access macro to set one or several bits */
|
||||
#define ATOMIC_SET_BIT(REG, BIT) \
|
||||
do { \
|
||||
uint32_t val; \
|
||||
do { \
|
||||
val = __LDREXW((__IO uint32_t *)&(REG)) | (BIT); \
|
||||
} while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
|
||||
__sync_fetch_and_or(&(REG), (BIT)); \
|
||||
} while(0)
|
||||
|
||||
/* Atomic 32-bit register access macro to clear one or several bits */
|
||||
#define ATOMIC_CLEAR_BIT(REG, BIT) \
|
||||
do { \
|
||||
uint32_t val; \
|
||||
do { \
|
||||
val = __LDREXW((__IO uint32_t *)&(REG)) & ~(BIT); \
|
||||
} while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
|
||||
__sync_fetch_and_and(&(REG), ~(BIT)); \
|
||||
} while(0)
|
||||
|
||||
/* Atomic 32-bit register access macro to clear and set one or several bits */
|
||||
#define ATOMIC_MODIFY_REG(REG, CLEARMSK, SETMASK) \
|
||||
do { \
|
||||
uint32_t val; \
|
||||
uint32_t old_val, new_val; \
|
||||
do { \
|
||||
val = (__LDREXW((__IO uint32_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \
|
||||
} while ((__STREXW(val,(__IO uint32_t *)&(REG))) != 0U); \
|
||||
old_val = (REG); \
|
||||
new_val = (old_val & ~(CLEARMSK)) | (SETMASK); \
|
||||
} while (!__sync_bool_compare_and_swap(&(REG), old_val, new_val)); \
|
||||
} while(0)
|
||||
|
||||
/* Atomic 16-bit register access macro to set one or several bits */
|
||||
#define ATOMIC_SETH_BIT(REG, BIT) \
|
||||
do { \
|
||||
uint16_t val; \
|
||||
do { \
|
||||
val = __LDREXH((__IO uint16_t *)&(REG)) | (BIT); \
|
||||
} while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
|
||||
__sync_fetch_and_or((uint16_t *)&(REG), (BIT)); \
|
||||
} while(0)
|
||||
|
||||
/* Atomic 16-bit register access macro to clear one or several bits */
|
||||
#define ATOMIC_CLEARH_BIT(REG, BIT) \
|
||||
do { \
|
||||
uint16_t val; \
|
||||
do { \
|
||||
val = __LDREXH((__IO uint16_t *)&(REG)) & ~(BIT); \
|
||||
} while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
|
||||
__sync_fetch_and_and((uint16_t *)&(REG), ~(BIT)); \
|
||||
} while(0)
|
||||
|
||||
/* Atomic 16-bit register access macro to clear and set one or several bits */
|
||||
#define ATOMIC_MODIFYH_REG(REG, CLEARMSK, SETMASK) \
|
||||
do { \
|
||||
uint16_t val; \
|
||||
uint16_t old_val, new_val; \
|
||||
do { \
|
||||
val = (__LDREXH((__IO uint16_t *)&(REG)) & ~(CLEARMSK)) | (SETMASK); \
|
||||
} while ((__STREXH(val,(__IO uint16_t *)&(REG))) != 0U); \
|
||||
old_val = (REG); \
|
||||
new_val = (old_val & ~(CLEARMSK)) | (SETMASK); \
|
||||
} while (!__sync_bool_compare_and_swap((uint16_t *)&(REG), old_val, new_val)); \
|
||||
} while(0)
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
@@ -167,7 +167,7 @@ typedef struct {
|
||||
unsigned fInitDone : 1; ///< флаг для выхода из потока программы МК
|
||||
|
||||
double SimTime; ///< Текущее время симуляции
|
||||
long SystemClock; ///< Счетчик тактов для симуляции системных тиков (в целочисленном формате)
|
||||
long long SystemClock; ///< Счетчик тактов для симуляции системных тиков (в целочисленном формате)
|
||||
|
||||
double SystemClockDouble; ///< Счетчик в формате double для точной симуляции системных тиков С промежуточными значений
|
||||
double sSystemClock_step; ///< Шаг тиков для их симуляции, в формате double
|
||||
|
||||
@@ -95,6 +95,8 @@ set code_PERIPH=.\MCU_STM32_Matlab\stm32_matlab_conf.c^
|
||||
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c^
|
||||
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c^
|
||||
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c^
|
||||
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c^
|
||||
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c^
|
||||
.\MCU_STM32_Matlab\Drivers\STM32_SIMULINK\stm32_matlab_tim.c^
|
||||
.\MCU_STM32_Matlab\Drivers\STM32_SIMULINK\stm32_matlab_adc.c
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ void app_init(void) {
|
||||
HAL_Init();
|
||||
MX_DMA_Init();
|
||||
MX_IWDG_Init();
|
||||
MX_USART3_UART_Init();
|
||||
MX_TIM1_Init();
|
||||
MX_TIM2_Init();
|
||||
MX_TIM3_Init();
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
clear all
|
||||
|
||||
IadcMax = 200;%50;
|
||||
IadcMax = 53;%200;%53;
|
||||
VadcMax = 1216;
|
||||
|
||||
Ts = 5e-6;
|
||||
Vnom = 400;
|
||||
Inom = 30;%4.2;
|
||||
Vnom = 690;
|
||||
Inom = 2;%4.2;
|
||||
Fnom = 50;
|
||||
|
||||
Temperature1 = 2.22; % 20 градусов
|
||||
Temperature2 = 2.99; % 34 градусов
|
||||
Temperatures1 = [2.22 4.22]; % 20->68 градусов
|
||||
TempTimeline1 = [0 100]; % 0 и 10 секунда
|
||||
Temperatures2 = [2.99 4.45]; % 34->80 градусов
|
||||
TempTimeline2 = [0 50]; % 0 и 5 секунда
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -20,6 +20,7 @@
|
||||
#ifndef _MODBUS_CONFIG_H_
|
||||
#define _MODBUS_CONFIG_H_
|
||||
#include "upp_defs.h"
|
||||
#include "upp_params.h"
|
||||
#include "upp_io.h"
|
||||
|
||||
// Общие параметры
|
||||
@@ -35,8 +36,6 @@
|
||||
#define MODBUS_MODEL_NAME ""
|
||||
#define MODBUS_USER_APPLICATION_NAME ""
|
||||
|
||||
#define MODBUS_NUMB_OF_USEROBJECTS 0 ///< Количество пользовательских объектов
|
||||
#define MODBUS_USEROBJECT_0_NAME "" ///< Строка пользовательского идентификатора 0. По аналогии можно определить строки до <=128 USEROBJECT
|
||||
|
||||
// Периферия (опционально)
|
||||
//#define mb_huart huart1 ///< Удобный дефайн для модбасовского uart
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#define UPP_DISABLE_ERROR_BLOCK ///< Отключить блокировку УПП при ошибках
|
||||
//#define UPP_DISABLE_ERROR_BLOCK ///< Отключить блокировку УПП при ошибках
|
||||
//#define UPP_SIMULATE_I ///< Симулировт токи (Iref/2) а не брать с АЦП
|
||||
#define UPP_DISABLE_PROTECT_BOARDPOWER ///< Отключить проверки питания плат (+24, +5 В)
|
||||
#define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы
|
||||
//#define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы
|
||||
|
||||
//#define ZC_DISABLE_HYSTERESIS_DEBOUNCE ///< Отключить гиситерезис и дребезг на определении перехода через ноль
|
||||
|
||||
|
||||
@@ -57,6 +57,8 @@ void PendSV_Handler(void);
|
||||
void SysTick_Handler(void);
|
||||
void TIM1_UP_TIM10_IRQHandler(void);
|
||||
void TIM2_IRQHandler(void);
|
||||
void USART3_IRQHandler(void);
|
||||
void TIM8_BRK_TIM12_IRQHandler(void);
|
||||
void TIM8_UP_TIM13_IRQHandler(void);
|
||||
void TIM8_TRG_COM_TIM14_IRQHandler(void);
|
||||
void DMA2_Stream0_IRQHandler(void);
|
||||
|
||||
@@ -133,12 +133,12 @@ int Protect_Currents(PowerMonitor_Measured_t *measure, UPP_PUI_Params_t *params,
|
||||
void Protect_Misc(PowerMonitor_Measured_t *measure, UPP_PUI_Params_t *params, UPP_ParamsNominal_t *nominal)
|
||||
{
|
||||
/* Переводим внутренние уставки в удобный вид */
|
||||
float lFnom = u2f(PARAM_INTERNAL->nominal.F, 100);
|
||||
float lFmin = lFnom - lFnom*u2f(PARAM_INTERNAL->nominal.F_deviation_minus, 10000);
|
||||
float lFmax = lFnom + lFnom*u2f(PARAM_INTERNAL->nominal.F_deviation_plus, 10000);
|
||||
float lFnom = u2f(nominal->F, 100);
|
||||
float lFmin = lFnom - lFnom*u2f(nominal->F_deviation_minus, 10000);
|
||||
float lFmax = lFnom + lFnom*u2f(nominal->F_deviation_plus, 10000);
|
||||
|
||||
float lTwarn = u2f(PARAM_INTERNAL->setpoints.TemperatureWarn, 100);
|
||||
float lTerr = u2f(PARAM_INTERNAL->setpoints.TemperatureWarn, 100);
|
||||
float lTwarn = PARAM_INTERNAL->temp.TemperatureWarn;
|
||||
float lTerr = PARAM_INTERNAL->temp.TemperatureWarn;
|
||||
|
||||
|
||||
/*=============== ЗАЩИТЫ ПО ЧАСТОТЕ ==================*/
|
||||
|
||||
@@ -60,6 +60,8 @@ extern DMA_HandleTypeDef hdma_adc3;
|
||||
extern TIM_HandleTypeDef htim1;
|
||||
extern TIM_HandleTypeDef htim2;
|
||||
extern TIM_HandleTypeDef htim8;
|
||||
extern TIM_HandleTypeDef htim12;
|
||||
extern UART_HandleTypeDef huart3;
|
||||
extern TIM_HandleTypeDef htim14;
|
||||
|
||||
/* USER CODE BEGIN EV */
|
||||
@@ -232,6 +234,46 @@ void TIM2_IRQHandler(void)
|
||||
/* USER CODE END TIM2_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles USART3 global interrupt.
|
||||
*/
|
||||
void USART3_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN USART3_IRQn 0 */
|
||||
|
||||
RS_UART_Handler(&hmodbus1);
|
||||
return;
|
||||
/* USER CODE END USART3_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart3);
|
||||
/* USER CODE BEGIN USART3_IRQn 1 */
|
||||
|
||||
/* USER CODE END USART3_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM8 break interrupt and TIM12 global interrupt.
|
||||
*/
|
||||
void TIM8_BRK_TIM12_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN TIM8_BRK_TIM12_IRQn 0 */
|
||||
uint32_t itsource = mb_htim.Instance->DIER;
|
||||
uint32_t itflag = mb_htim.Instance->SR;
|
||||
if ((itflag & (TIM_FLAG_UPDATE)) == (TIM_FLAG_UPDATE))
|
||||
{
|
||||
if ((itsource & (TIM_IT_UPDATE)) == (TIM_IT_UPDATE))
|
||||
{
|
||||
RS_TIM_Handler(&hmodbus1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
/* USER CODE END TIM8_BRK_TIM12_IRQn 0 */
|
||||
HAL_TIM_IRQHandler(&htim8);
|
||||
HAL_TIM_IRQHandler(&htim12);
|
||||
/* USER CODE BEGIN TIM8_BRK_TIM12_IRQn 1 */
|
||||
|
||||
/* USER CODE END TIM8_BRK_TIM12_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM8 update interrupt and TIM13 global interrupt.
|
||||
*/
|
||||
|
||||
@@ -468,6 +468,8 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
|
||||
__HAL_RCC_TIM8_CLK_ENABLE();
|
||||
|
||||
/* TIM8 interrupt Init */
|
||||
HAL_NVIC_SetPriority(TIM8_BRK_TIM12_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TIM8_BRK_TIM12_IRQn);
|
||||
HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);
|
||||
HAL_NVIC_SetPriority(TIM8_TRG_COM_TIM14_IRQn, 15, 0);
|
||||
@@ -494,6 +496,10 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
|
||||
/* USER CODE END TIM12_MspInit 0 */
|
||||
/* TIM12 clock enable */
|
||||
__HAL_RCC_TIM12_CLK_ENABLE();
|
||||
|
||||
/* TIM12 interrupt Init */
|
||||
HAL_NVIC_SetPriority(TIM8_BRK_TIM12_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TIM8_BRK_TIM12_IRQn);
|
||||
/* USER CODE BEGIN TIM12_MspInit 1 */
|
||||
|
||||
/* USER CODE END TIM12_MspInit 1 */
|
||||
@@ -613,6 +619,14 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
|
||||
__HAL_RCC_TIM8_CLK_DISABLE();
|
||||
|
||||
/* TIM8 interrupt Deinit */
|
||||
/* USER CODE BEGIN TIM8:TIM8_BRK_TIM12_IRQn disable */
|
||||
/**
|
||||
* Uncomment the line below to disable the "TIM8_BRK_TIM12_IRQn" interrupt
|
||||
* Be aware, disabling shared interrupt may affect other IPs
|
||||
*/
|
||||
/* HAL_NVIC_DisableIRQ(TIM8_BRK_TIM12_IRQn); */
|
||||
/* USER CODE END TIM8:TIM8_BRK_TIM12_IRQn disable */
|
||||
|
||||
HAL_NVIC_DisableIRQ(TIM8_UP_TIM13_IRQn);
|
||||
HAL_NVIC_DisableIRQ(TIM8_TRG_COM_TIM14_IRQn);
|
||||
/* USER CODE BEGIN TIM8_MspDeInit 1 */
|
||||
@@ -637,6 +651,16 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
|
||||
/* USER CODE END TIM12_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_TIM12_CLK_DISABLE();
|
||||
|
||||
/* TIM12 interrupt Deinit */
|
||||
/* USER CODE BEGIN TIM12:TIM8_BRK_TIM12_IRQn disable */
|
||||
/**
|
||||
* Uncomment the line below to disable the "TIM8_BRK_TIM12_IRQn" interrupt
|
||||
* Be aware, disabling shared interrupt may affect other IPs
|
||||
*/
|
||||
/* HAL_NVIC_DisableIRQ(TIM8_BRK_TIM12_IRQn); */
|
||||
/* USER CODE END TIM12:TIM8_BRK_TIM12_IRQn disable */
|
||||
|
||||
/* USER CODE BEGIN TIM12_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END TIM12_MspDeInit 1 */
|
||||
|
||||
@@ -110,6 +110,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/* USART3 interrupt Init */
|
||||
HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(USART3_IRQn);
|
||||
/* USER CODE BEGIN USART3_MspInit 1 */
|
||||
|
||||
/* USER CODE END USART3_MspInit 1 */
|
||||
@@ -157,6 +160,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOB, SCIT1_Pin|SCIR1_Pin);
|
||||
|
||||
/* USART3 interrupt Deinit */
|
||||
HAL_NVIC_DisableIRQ(USART3_IRQn);
|
||||
/* USER CODE BEGIN USART3_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END USART3_MspDeInit 1 */
|
||||
|
||||
@@ -151,7 +151,7 @@ void UPP_Errors_LossPhase(void)
|
||||
MS_TO_SLOW_TICKS(ERRORS_DELAY_MS_DEFAULT));
|
||||
|
||||
/* Если хотя бы одна фаза есть проверяем фазы отдельно */
|
||||
if(!ERR_PUI->LossPhaseAll)
|
||||
if(!loss_phases_all)
|
||||
{
|
||||
ERR_PUI->LossPhaseA = setError( ERR_PRIVATE->ia_min,
|
||||
ERR_PUI->LossPhaseA,
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
- @ref ANGLE_CONTROL - Формирование и регулирование угла открытия тиристора
|
||||
******************************************************************************/
|
||||
#include "upp_main.h" // всё остальное по работе с УПП
|
||||
#include "usart.h"
|
||||
#include "tim.h"
|
||||
#include "iwdg.h"
|
||||
|
||||
@@ -34,6 +35,8 @@ int UPP_App_Init(void)
|
||||
upp.PUI.values = &MB_DATA.InRegs.pui;
|
||||
upp.call = &MB_INTERNAL.FuncCalls;
|
||||
|
||||
MODBUS_FirstInit(&hmodbus1, &mb_huart, &mb_htim);
|
||||
|
||||
if(HAL_TIM_Base_Start(&ustim) != HAL_OK)
|
||||
{
|
||||
return 1;
|
||||
@@ -50,7 +53,6 @@ int UPP_App_Init(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(UPP_Params_Init() != HAL_OK)
|
||||
{
|
||||
return 1;
|
||||
@@ -74,6 +76,7 @@ int UPP_PreWhile(void)
|
||||
#endif
|
||||
|
||||
UPP_DO.CEN(ENABLE);
|
||||
MODBUS_SlaveStart(&hmodbus1, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -141,8 +144,8 @@ int UPP_While(void)
|
||||
UPP_DO.Error(DISABLE);
|
||||
if(slow_cnt == 0)
|
||||
{ // начало инициализации - сбрасываем флаги
|
||||
memset(&ERR_PRIVATE, 0, sizeof(ERR_PRIVATE));
|
||||
memset(&ERR_PUI, 0, sizeof(ERR_PUI));
|
||||
memset(ERR_PRIVATE, 0, sizeof(*ERR_PRIVATE));
|
||||
memset(ERR_PUI, 0, sizeof(*ERR_PUI));
|
||||
}
|
||||
|
||||
if(slow_cnt > MS_TO_SLOW_TICKS(UPP_INIT_BEFORE_READY_MS))
|
||||
|
||||
@@ -372,8 +372,8 @@ void UPP_Params_Saturate(void)
|
||||
SATURATE_U16(PARAM_PUI->Tdelay, 5, 60);
|
||||
SATURATE_U16(PARAM_PUI->Interlace, 0, 1);
|
||||
|
||||
SATURATE_U16(PARAM_INTERNAL->setpoints.TemperatureWarn, 0, 90);
|
||||
SATURATE_U16(PARAM_INTERNAL->setpoints.TemperatureErr, 0, 90);
|
||||
SATURATE_U16(PARAM_INTERNAL->temp.TemperatureWarn, 0, 90);
|
||||
SATURATE_U16(PARAM_INTERNAL->temp.TemperatureErr, 0, 90);
|
||||
|
||||
SATURATE_U16(PARAM_INTERNAL->nominal.PhaseNumber, 0, 3);
|
||||
SATURATE_U16(PARAM_INTERNAL->nominal.U, 0, ADC_U_MAX_V_DEFAULT*10);
|
||||
@@ -426,8 +426,8 @@ void UPP_Params_SetDefault(int pui_default, int internal_default)
|
||||
|
||||
if(internal_default)
|
||||
{
|
||||
PARAM_INTERNAL->setpoints.TemperatureWarn = SETPOINT_TEMP_WARN*10;
|
||||
PARAM_INTERNAL->setpoints.TemperatureErr = SETPOINT_TEMP_ERR*10;
|
||||
PARAM_INTERNAL->temp.TemperatureWarn = SETPOINT_TEMP_WARN*10;
|
||||
PARAM_INTERNAL->temp.TemperatureErr = SETPOINT_TEMP_ERR*10;
|
||||
|
||||
PARAM_INTERNAL->nominal.PhaseNumber = NOM_PHASE_NUMB;
|
||||
PARAM_INTERNAL->nominal.U = NOM_U_V_DEFAULT*10;
|
||||
|
||||
@@ -10,15 +10,17 @@
|
||||
#define _UPP_PARAMS_H
|
||||
#include "upp_defs.h"
|
||||
|
||||
|
||||
|
||||
#define u2f(_u16_, _coef_) ((float)_u16_/_coef_)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned set_default_pui:1; ///< Выставить настройки ПУИ в дефолтные
|
||||
unsigned set_default_internal:1;///< Выставить внутренние настройки в дефолтные
|
||||
unsigned go:1; ///< Запустить УПП
|
||||
unsigned stop:1; ///< Остановка УПП (авария)
|
||||
|
||||
unsigned set_default_pui:1; ///< Выставить настройки ПУИ в дефолтные
|
||||
unsigned set_default_internal:1;///< Выставить внутренние настройки в дефолтные
|
||||
|
||||
unsigned reserved:11;
|
||||
unsigned reset_mcu:1;
|
||||
@@ -27,72 +29,75 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t PhaseSequence; ///< Последовательность фаз todo
|
||||
uint16_t PhaseNumber; ///< [Количество]
|
||||
uint16_t U; ///< [В x 10]
|
||||
uint16_t U_deviation_plus; ///< [Проценты x 100]
|
||||
uint16_t U_deviation_minus; ///< [Проценты x 100]
|
||||
uint16_t F; ///< [Гц x 100]
|
||||
uint16_t F_deviation_plus; ///< [Проценты x 100]
|
||||
uint16_t F_deviation_minus; ///< [Проценты x 100]
|
||||
uint16_t I; ///< [Амперы x 10]
|
||||
uint16_t PhaseSequence; ///< Адрес 1000: Последовательность фаз todo
|
||||
uint16_t PhaseNumber; ///< Адрес 1001: [Количество]
|
||||
uint16_t U; ///< Адрес 1002: [В x 10]
|
||||
uint16_t U_deviation_plus; ///< Адрес 1003: [Проценты x 100]
|
||||
uint16_t U_deviation_minus; ///< Адрес 1004: [Проценты x 100]
|
||||
uint16_t F; ///< Адрес 1005: [Гц x 100]
|
||||
uint16_t F_deviation_plus; ///< Адрес 1006: [Проценты x 100]
|
||||
uint16_t F_deviation_minus; ///< Адрес 1007: [Проценты x 100]
|
||||
uint16_t I; ///< Адрес 1008: [Амперы x 10]
|
||||
}UPP_ParamsNominal_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t TemperatureWarn; ///< Предупредительный порог температуры [Градусы x 100]
|
||||
uint16_t TemperatureErr; ///< Аварийный порог температуры [Градусы x 100]
|
||||
}UPP_ParamsSetpoints_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UPP_ParamsNominal_t nominal;
|
||||
|
||||
/* Параметры Температур */
|
||||
struct
|
||||
{
|
||||
uint16_t rms_window_size; ///< Размер окна для RMS
|
||||
uint16_t rms_exp_alpha; ///< Постоянная времени для сглаживания RMS
|
||||
}pm;
|
||||
|
||||
UPP_ParamsNominal_t nominal;
|
||||
UPP_ParamsSetpoints_t setpoints;
|
||||
uint16_t TemperatureWarn; ///< Адрес 1010: Предупредительный порог температуры [Градусы x 100]
|
||||
uint16_t TemperatureErr; ///< Адрес 1011: Аварийный порог температуры [Градусы x 100]
|
||||
}temp;
|
||||
|
||||
/* Параметры АЦП */
|
||||
struct
|
||||
{
|
||||
uint16_t ADC_Max[4]; ///< Величина в единицах измерения при АЦП = 4095 [В или А x 10]
|
||||
uint16_t ADC_Zero[4]; ///< Кванты АЦП когда на входе ноль
|
||||
uint16_t ADC_Max[4]; ///< Адрес 1020: Величина в единицах измерения при АЦП = 4095 [В или А x 10]
|
||||
uint16_t ADC_Zero[4]; ///< Адрес 1021: Кванты АЦП когда на входе ноль
|
||||
}adc;
|
||||
|
||||
|
||||
/* Параметры Мониторинга напряжения */
|
||||
struct
|
||||
{
|
||||
uint16_t rms_window_size; ///< Адрес 1030: Размер окна для RMS
|
||||
uint16_t rms_exp_alpha; ///< Адрес 1031: Постоянная времени для сглаживания RMS
|
||||
}pm;
|
||||
|
||||
/* Параметры ШИМ */
|
||||
struct
|
||||
{
|
||||
uint16_t PhaseMask; ///< Битовяя маска на какие фазы подавать ШИМ: 0 бит - a, 1 бит - b, 2 бит - c
|
||||
uint16_t Frequency; ///< Частота ШИМ для пачки импульсов на тиристоры [Герцы]
|
||||
uint16_t Duty; ///< Скважность ШИМ для пачки импульсов на тиристоры [Проценты]
|
||||
uint16_t PulseLength; ///< Количесво импульсов в пачке [Количество]
|
||||
uint16_t PhaseMask; ///< Адрес 1040: Битовяя маска на какие фазы подавать ШИМ: 0 бит - a, 1 бит - b, 2 бит - c
|
||||
uint16_t Frequency; ///< Адрес 1041: Частота ШИМ для пачки импульсов на тиристоры [Герцы]
|
||||
uint16_t Duty; ///< Адрес 1042: Скважность ШИМ для пачки импульсов на тиристоры [Проценты]
|
||||
uint16_t PulseLength; ///< Адрес 1043: Количесво импульсов в пачке [Количество]
|
||||
}pwm;
|
||||
|
||||
/* Параметры Угла */
|
||||
/* Параметры Перехода через ноль */
|
||||
struct
|
||||
{
|
||||
uint16_t Hysteresis; ///< Гистерезис для определения перехода через ноль [Проценты x 100]
|
||||
uint16_t DebouneCouner; ///< Защита от дребезга: через сколько тактов снова начать фиксировать переход через ноль [Количество]
|
||||
uint16_t Hysteresis; ///< Адрес 1050: Гистерезис для определения перехода через ноль [Проценты x 100]
|
||||
uint16_t DebouneCouner; ///< Адрес 1051: Защита от дребезга: через сколько тактов снова начать фиксировать переход через ноль [Количество]
|
||||
}zc;
|
||||
|
||||
/* Параметры Угла */
|
||||
struct
|
||||
{
|
||||
uint16_t PulseLengthReserve;/*!< @brief Сколько запаса закладывать на длительность пачки импульсов [Проценты] @ref __AngleSetLimit
|
||||
uint16_t PulseLengthReserve;/*!< @brief Адрес 1060: Сколько запаса закладывать на длительность пачки импульсов [Проценты] @ref __AngleSetLimit
|
||||
@details Пример: 100% - будет запас в одну пачку импульсов */
|
||||
uint16_t Angle_Max; ///< Максимальный угол открытия тиристора [0..1 x 65535]
|
||||
uint16_t Angle_Min; ///< Минимальный угол открытия тиристора [0..1 x 65535]
|
||||
uint16_t PID_Kp; ///< Пропорциональный коэфициент ПИ регулятора угла [x 10000]
|
||||
uint16_t PID_Ki; ///< Интегральный коэфициент ПИ регулятора угла [x 10000]
|
||||
uint16_t PID_Kd; ///< Интегральный коэфициент ПИ регулятора угла [x 10000]
|
||||
uint16_t Angle_Max; ///< Адрес 1061: Максимальный угол открытия тиристора [0..1 x 65535]
|
||||
uint16_t Angle_Min; ///< Адрес 1062: Минимальный угол открытия тиристора [0..1 x 65535]
|
||||
uint16_t PID_Kp; ///< Адрес 1063: Пропорциональный коэфициент ПИ регулятора угла [x 10000]
|
||||
uint16_t PID_Ki; ///< Адрес 1064: Интегральный коэфициент ПИ регулятора угла [x 10000]
|
||||
uint16_t PID_Kd; ///< Адрес 1065: Интегральный коэфициент ПИ регулятора угла [x 10000]
|
||||
}angle;
|
||||
|
||||
|
||||
|
||||
}UPP_PrvtParams_t;
|
||||
|
||||
/* Контроль параметров УПП. */
|
||||
@@ -108,4 +113,55 @@ void UPP_Params_Saturate(void);
|
||||
/* Установка параметров на дефолтные значения */
|
||||
void UPP_Params_SetDefault(int pui_default, int internal_default);
|
||||
|
||||
#define MODBUS_NUMB_OF_USEROBJECTS 128 ///< Количество пользовательских объектов
|
||||
/* Номинальные параметры (H1000-H1008) */
|
||||
#define MODBUS_USEROBJECT_0_NAME "Nom PhSeq;H1000;[]"
|
||||
#define MODBUS_USEROBJECT_1_NAME "Nom PhNum;H1001;[cnt]"
|
||||
#define MODBUS_USEROBJECT_2_NAME "Nom U;H1002;[Vx10]"
|
||||
#define MODBUS_USEROBJECT_3_NAME "Nom Udev+;H1003;[%x100]"
|
||||
#define MODBUS_USEROBJECT_4_NAME "Nom Udev-;H1004;[%x100]"
|
||||
#define MODBUS_USEROBJECT_5_NAME "Nom F;H1005;[Hzx100]"
|
||||
#define MODBUS_USEROBJECT_6_NAME "Nom Fdev+;H1006;[%x100]"
|
||||
#define MODBUS_USEROBJECT_7_NAME "Nom Fdev-;H1007;[%x100]"
|
||||
#define MODBUS_USEROBJECT_8_NAME "Nom I;H1008;[Ax10]"
|
||||
|
||||
/* Температурные параметры (H1010-H1011) */
|
||||
#define MODBUS_USEROBJECT_10_NAME "TempWarn;H1010;[Cx100]"
|
||||
#define MODBUS_USEROBJECT_11_NAME "TempErr;H1011;[Cx100]"
|
||||
|
||||
/* Параметры АЦП (H1020-H1027) */
|
||||
#define MODBUS_USEROBJECT_20_NAME "ADC Max Uba;H1020;[V/Ax10]"
|
||||
#define MODBUS_USEROBJECT_21_NAME "ADC Max Uac;H1021;[V/Ax10]"
|
||||
#define MODBUS_USEROBJECT_22_NAME "ADC Max Ic;H1022;[V/Ax10]"
|
||||
#define MODBUS_USEROBJECT_23_NAME "ADC Max Ia;H1023;[V/Ax10]"
|
||||
#define MODBUS_USEROBJECT_24_NAME "ADC Zero Uba;H1024;[Quants]"
|
||||
#define MODBUS_USEROBJECT_25_NAME "ADC Zero Uac;H1025;[Quants]"
|
||||
#define MODBUS_USEROBJECT_26_NAME "ADC Zero Ic;H1026;[Quants]"
|
||||
#define MODBUS_USEROBJECT_27_NAME "ADC Zero Ia;H1027;[Quants]"
|
||||
|
||||
/* Мониторинг питания (H1030-H1031) */
|
||||
#define MODBUS_USEROBJECT_30_NAME "RMS WindowSize;H1030;[]"
|
||||
#define MODBUS_USEROBJECT_31_NAME "RMS Alpha;H1031;[x10000]"
|
||||
|
||||
/* ШИМ параметры (H1040-H1043) */
|
||||
#define MODBUS_USEROBJECT_40_NAME "PWM Mask;H1040;[bit]"
|
||||
#define MODBUS_USEROBJECT_41_NAME "PWM Freq;H1041;[Hz]"
|
||||
#define MODBUS_USEROBJECT_42_NAME "PWM Duty;H1042;[%]"
|
||||
#define MODBUS_USEROBJECT_43_NAME "PWM Pulses;H1043;[cnt]"
|
||||
|
||||
/* Ноль-кросс (H1050-H1051) */
|
||||
#define MODBUS_USEROBJECT_50_NAME "ZC Hyst;H1050;[%x100]"
|
||||
#define MODBUS_USEROBJECT_51_NAME "ZC Debounce;H1051;[cnt]"
|
||||
|
||||
/* Угловые параметры (H1060-H1065) */
|
||||
#define MODBUS_USEROBJECT_60_NAME "Angle PulseRes;H1060;[%]"
|
||||
#define MODBUS_USEROBJECT_61_NAME "Angle Max;H1061;[x65535]"
|
||||
#define MODBUS_USEROBJECT_62_NAME "Angle Min;H1062;[x65535]"
|
||||
#define MODBUS_USEROBJECT_63_NAME "Angle PID_Kp;H1063;[x10000]"
|
||||
#define MODBUS_USEROBJECT_64_NAME "Angle PID_Ki;H1064;[x10000]"
|
||||
#define MODBUS_USEROBJECT_65_NAME "Angle PID_Kd;H1065;[x10000]"
|
||||
|
||||
/* Функциональные вызовы - если нужно (битовые поля в одном регистре) */
|
||||
#define MODBUS_USEROBJECT2000_NAME "FuncCalls;H2000;[bitmask]"
|
||||
|
||||
#endif //_UPP_PARAMS_H
|
||||
@@ -12,7 +12,7 @@
|
||||
<lExt>*.lib</lExt>
|
||||
<tExt>*.txt; *.h; *.inc; *.md</tExt>
|
||||
<pExt>*.plm</pExt>
|
||||
<CppX>*.cpp</CppX>
|
||||
<CppX>*.cpp; *.cc; *.cxx</CppX>
|
||||
<nMigrate>0</nMigrate>
|
||||
</Extensions>
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
<tRmem>1</tRmem>
|
||||
<tRfunc>1</tRfunc>
|
||||
<tRfunc>0</tRfunc>
|
||||
<tRbox>1</tRbox>
|
||||
<tRtrace>1</tRtrace>
|
||||
<sRSysVw>1</sRSysVw>
|
||||
@@ -103,7 +103,7 @@
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>6</nTsel>
|
||||
<nTsel>4</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
@@ -114,44 +114,54 @@
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMRTXEVENTFLAGS</Key>
|
||||
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGTARM</Key>
|
||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMDBGFLAGS</Key>
|
||||
<Name></Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>JL2CM3</Key>
|
||||
<Name>-U -O14 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06413041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F427ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
<Name></Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>UL2CM3</Key>
|
||||
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F427ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||
<Name>-U-O142 -O2190 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F427ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint>
|
||||
<Bp>
|
||||
<Number>0</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>156</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>..\Core\PowerMonitor\power_monitor.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<Breakpoint/>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>uwTick,0x0A</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
<DebugFlag>
|
||||
<trace>0</trace>
|
||||
<periodic>1</periodic>
|
||||
<periodic>0</periodic>
|
||||
<aLwin>1</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>0</aSer1>
|
||||
@@ -170,7 +180,7 @@
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
<StkLoc>1</StkLoc>
|
||||
<StkLoc>0</StkLoc>
|
||||
<TrcWin>0</TrcWin>
|
||||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
@@ -270,7 +280,7 @@
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
<tRmem>1</tRmem>
|
||||
<tRfunc>1</tRfunc>
|
||||
<tRfunc>0</tRfunc>
|
||||
<tRbox>1</tRbox>
|
||||
<tRtrace>1</tRtrace>
|
||||
<sRSysVw>1</sRSysVw>
|
||||
@@ -294,11 +304,6 @@
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>JL2CM3</Key>
|
||||
<Name>-U60145553 -O14 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06413041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMRTXEVENTFLAGS</Key>
|
||||
@@ -307,13 +312,18 @@
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGTARM</Key>
|
||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=620,209,878,797,0)(1012=-1,-1,-1,-1,0)</Name>
|
||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMDBGFLAGS</Key>
|
||||
<Name></Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>JL2CM3</Key>
|
||||
<Name>-U-O14 -O14 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06413041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
@@ -322,199 +332,59 @@
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>UL2CM3</Key>
|
||||
<Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F4xx_1024 -FL0100000 -FS08000000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||
<Name>-U005600373433510237363934 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131123 -TC168000000 -TT10000000 -TP21 -TDS800D -TDT1 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
|
||||
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
<Breakpoint>
|
||||
<Bp>
|
||||
<Number>0</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>50</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134253566</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>1</BreakIfRCount>
|
||||
<Filename>../Core/Src/usart.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\Debug_F417\../Core/Src/usart.c\50</Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>upp.call,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>1</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>upp,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>uwTick,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>errors.prvt.f.err</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>4</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>errors.prvt.cnt</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>5</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>upp.pm.measured</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>6</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>hbt,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>7</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>\\Debug_F417\../Core/UPP/upp_main.c\upp.pm.avg[5].dataProcessing</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>8</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>dbg_polarity,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>9</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>dbg_iref</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>10</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>upp.pm.zc.Channel[0].HalfWave</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>11</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>\\Debug_F417\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c\uwTick,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>12</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>htim1</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>13</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>htim2</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>14</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>UPP_DIN,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>15</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>\\Debug_F417\../Core/UPP/upp_io.c\UPP_DIN.Pusk.Sw_FilterDelay</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>16</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>hadc3</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>17</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>upp.hangle.Iref</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>18</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>upp.pm.measured.final.U[0]</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<WatchWindow2>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>MB_INTERNAL,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>1</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>MB_DATA,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>errors.prvt.f.err,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>errors.prvt.cnt,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>4</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>errors.pui,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>5</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>errors.common</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>6</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>upp.pm.measured.slow.U[0]</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>7</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>zc->Channel[channel1].PeriodStartTime,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>8</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>zc->Channel[channel2].PeriodStartTime,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>9</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>zc->Channel[channel1].PeriodStartTime - zc->Channel[channel2].PeriodStartTime,0x10</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>10</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>htim5.Instance,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>11</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>iref_dbg</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>12</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>upp.pm.measured.slow.U[0]</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>13</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>upp,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>14</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>htim5,0x0A</ItemText>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>MB_DEVID</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>15</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>htim3,0x0A</ItemText>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>hmodbus1,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>16</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>htim5.Instance->CNT-2605346416,0x0A</ItemText>
|
||||
<count>4</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>RS_Buffer</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow2>
|
||||
<Ww>
|
||||
<count>5</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>pclk,0x0A</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
@@ -539,7 +409,7 @@
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
<StkLoc>1</StkLoc>
|
||||
<StkLoc>0</StkLoc>
|
||||
<TrcWin>0</TrcWin>
|
||||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
@@ -559,17 +429,17 @@
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
<SystemViewers>
|
||||
<Entry>
|
||||
<Name>System Viewer\ADC3</Name>
|
||||
<Name>System Viewer\GPIOB</Name>
|
||||
<WinId>35905</WinId>
|
||||
</Entry>
|
||||
<Entry>
|
||||
<Name>System Viewer\DMA2</Name>
|
||||
<Name>System Viewer\USART3</Name>
|
||||
<WinId>35904</WinId>
|
||||
</Entry>
|
||||
</SystemViewers>
|
||||
<DebugDescription>
|
||||
<Enable>1</Enable>
|
||||
<EnableFlashSeq>0</EnableFlashSeq>
|
||||
<EnableFlashSeq>1</EnableFlashSeq>
|
||||
<EnableLog>0</EnableLog>
|
||||
<Protocol>2</Protocol>
|
||||
<DbgClock>10000000</DbgClock>
|
||||
@@ -1187,7 +1057,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>MyLibs</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@@ -1859,7 +1729,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>Application/MDK-ARM</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@@ -1899,7 +1769,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>::Compiler</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>1</RteFlg>
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
<DriverSelection>4101</DriverSelection>
|
||||
</Flash1>
|
||||
<bUseTDR>1</bUseTDR>
|
||||
<Flash2>BIN\UL2V8M.DLL</Flash2>
|
||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||
<Flash3></Flash3>
|
||||
<Flash4></Flash4>
|
||||
<pFcarmOut></pFcarmOut>
|
||||
|
||||
@@ -164,10 +164,12 @@ NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
|
||||
NVIC.TIM1_UP_TIM10_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.TIM2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.TIM8_BRK_TIM12_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.TIM8_TRG_COM_TIM14_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.TIM8_UP_TIM13_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.TimeBase=TIM8_TRG_COM_TIM14_IRQn
|
||||
NVIC.TimeBaseIP=TIM14
|
||||
NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
PA10.GPIOParameters=GPIO_Label
|
||||
PA10.GPIO_Label=PWM3
|
||||
|
||||
Reference in New Issue
Block a user