diff --git a/UPP/AllLibs/PeriphGeneral b/UPP/AllLibs/PeriphGeneral index c0733a1..5ad51f0 160000 --- a/UPP/AllLibs/PeriphGeneral +++ b/UPP/AllLibs/PeriphGeneral @@ -1 +1 @@ -Subproject commit c0733a1d31ebd7b334dee6b1a8c2b00767fdbfca +Subproject commit 5ad51f0d61bda9ec36c2020400c27645c27d2043 diff --git a/UPP/Core/Inc/main.h b/UPP/Core/Inc/main.h index 95d128a..1777168 100644 --- a/UPP/Core/Inc/main.h +++ b/UPP/Core/Inc/main.h @@ -92,8 +92,8 @@ void Error_Handler(void); #define mb_pui_huart huart3 #define ustim htim5 #define hpwm1 htim1 -#define UM_LED_GREEN2_Pin GPIO_PIN_2 -#define UM_LED_GREEN2_GPIO_Port GPIOE +#define UM_LED_RED_Pin GPIO_PIN_2 +#define UM_LED_RED_GPIO_Port GPIOE #define CEN_Pin GPIO_PIN_3 #define CEN_GPIO_Port GPIOE #define UM_ERR_5VD_Pin GPIO_PIN_4 @@ -178,10 +178,10 @@ void Error_Handler(void); #define CANR_GPIO_Port GPIOB #define CANT_Pin GPIO_PIN_9 #define CANT_GPIO_Port GPIOB -#define UM_LED_RED_Pin GPIO_PIN_0 -#define UM_LED_RED_GPIO_Port GPIOE -#define UM_LED_GREEN1_Pin GPIO_PIN_1 +#define UM_LED_GREEN1_Pin GPIO_PIN_0 #define UM_LED_GREEN1_GPIO_Port GPIOE +#define UM_LED_GREEN2_Pin GPIO_PIN_1 +#define UM_LED_GREEN2_GPIO_Port GPIOE /* USER CODE BEGIN Private defines */ extern TIM_HandleTypeDef ustim; diff --git a/UPP/Core/Src/gpio.c b/UPP/Core/Src/gpio.c index 510898c..99df2bd 100644 --- a/UPP/Core/Src/gpio.c +++ b/UPP/Core/Src/gpio.c @@ -55,8 +55,8 @@ void MX_GPIO_Init(void) __HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOE, UM_LED_GREEN2_Pin|CEN_Pin|RDO3_Pin|UM_LED_RED_Pin - |UM_LED_GREEN1_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(GPIOE, UM_LED_RED_Pin|CEN_Pin|RDO3_Pin|UM_LED_GREEN1_Pin + |UM_LED_GREEN2_Pin, GPIO_PIN_SET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(DO2_GPIO_Port, DO2_Pin, GPIO_PIN_RESET); @@ -77,17 +77,10 @@ void MX_GPIO_Init(void) /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(UM_SPI_CS_GPIO_Port, UM_SPI_CS_Pin, GPIO_PIN_RESET); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = UM_LED_GREEN2_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; - HAL_GPIO_Init(UM_LED_GREEN2_GPIO_Port, &GPIO_InitStruct); - /*Configure GPIO pins : PEPin PEPin PEPin PEPin - PEPin */ - GPIO_InitStruct.Pin = CEN_Pin|DO2_Pin|RDO3_Pin|UM_LED_RED_Pin - |UM_LED_GREEN1_Pin; + PEPin PEPin */ + GPIO_InitStruct.Pin = UM_LED_RED_Pin|CEN_Pin|DO2_Pin|RDO3_Pin + |UM_LED_GREEN1_Pin|UM_LED_GREEN2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; diff --git a/UPP/Core/UPP/upp_errors.c b/UPP/Core/UPP/upp_errors.c index 7454baf..be3d023 100644 --- a/UPP/Core/UPP/upp_errors.c +++ b/UPP/Core/UPP/upp_errors.c @@ -14,8 +14,8 @@ Также реализована защита от дребезга и в целом задержка на выставление ошибок. ******************************************************************************/ -#include "upp_main.h" // УПП -#include "upp_errors.h" // всё остальное по работе с УПП +#include "upp_main.h" // всё остальное по работе с УПП +#include "upp_errors.h" UPP_Errors_t errors; static UPP_ErrorType_t UPP_SelectCommonError(void); diff --git a/UPP/Core/UPP/upp_io.c b/UPP/Core/UPP/upp_io.c index dc174a3..324e138 100644 --- a/UPP/Core/UPP/upp_io.c +++ b/UPP/Core/UPP/upp_io.c @@ -58,9 +58,9 @@ void UPP_IO_Init(void) GPIO_Switch_Init(&UPP_DIN.err_Va, UM_ERR_VA_GPIO_Port, UM_ERR_VA_Pin, 1); /* Светодиоды платы УМ */ - GPIO_LED_Init(&UPP_LEDS.green1, UM_LED_GREEN1_GPIO_Port, UM_LED_GREEN1_Pin, 0); - GPIO_LED_Init(&UPP_LEDS.green2, UM_LED_GREEN2_GPIO_Port, UM_LED_GREEN2_Pin, 0); - GPIO_LED_Init(&UPP_LEDS.red, UM_LED_RED_GPIO_Port, UM_LED_RED_Pin, 0); + GPIO_LED_Init(&UPP_LEDS.green1, UM_LED_GREEN1_GPIO_Port, UM_LED_GREEN1_Pin, 1); + GPIO_LED_Init(&UPP_LEDS.green2, UM_LED_GREEN2_GPIO_Port, UM_LED_GREEN2_Pin, 1); + GPIO_LED_Init(&UPP_LEDS.red, UM_LED_RED_GPIO_Port, UM_LED_RED_Pin, 1); /* Очищаем выходы */ diff --git a/UPP/Core/UPP/upp_main.c b/UPP/Core/UPP/upp_main.c index 5ba52be..367a502 100644 --- a/UPP/Core/UPP/upp_main.c +++ b/UPP/Core/UPP/upp_main.c @@ -10,6 +10,7 @@ - @ref ANGLE_CONTROL - Формирование и регулирование угла открытия тиристора ******************************************************************************/ #include "upp_main.h" // всё остальное по работе с УПП +#include "upp_status.h" #include "usart.h" #include "can.h" #include "tim.h" @@ -40,10 +41,6 @@ int UPP_App_Init(void) MODBUS_FirstInit(&hmodbus1, &mb_huart, &mb_htim, UPP_UART2_SetDirection); MODBUS_FirstInit(&hmodbus_pui, &mb_pui_huart, &mb_pui_htim, UPP_UART1_SetDirection); - HAL_CAN_Start(&hcan1); - HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING | CAN_IT_RX_FIFO1_MSG_PENDING | - CAN_IT_ERROR | CAN_IT_BUSOFF | CAN_IT_LAST_ERROR_CODE); - if(HAL_TIM_Base_Start(&ustim) != HAL_OK) { @@ -83,15 +80,25 @@ int UPP_PreWhile(void) dbg_polarity = 0; #endif -// UPP_DO.CEN(ENABLE); +// GPIO_LED_Fading_Start(&UPP_LEDS.red, 1000); + GPIO_LED_Duty_Set(&UPP_LEDS.green1, 25); + GPIO_LED_Duty_Set(&UPP_LEDS.green2, 50); + GPIO_LED_Duty_Set(&UPP_LEDS.red, 5); + + HAL_CAN_Start(&hcan1); + HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING | CAN_IT_RX_FIFO1_MSG_PENDING | + CAN_IT_ERROR | CAN_IT_BUSOFF | CAN_IT_LAST_ERROR_CODE); + MODBUS_SlaveStart(&hmodbus1, NULL); + +// UPP_DO.CEN(ENABLE); return 0; } int test_cen = 0; -int test_err = 0; -int test_work = 0; -int test_ready = 0; +int test_red = 0; +int test_green1 = 0; +int test_green2 = 0; /** * @brief Основной цикл УПП. @@ -103,6 +110,10 @@ int UPP_While(void) int retval = 0; if(upp.pm.f.runSlow) { + GPIO_LED_Duty_Set(&UPP_LEDS.green1, test_green1); + GPIO_LED_Duty_Set(&UPP_LEDS.green2, test_green2); + GPIO_LED_Duty_Set(&UPP_LEDS.red, test_red); + static uint32_t slow_cnt = 0; upp.Timings.slow_calc_prd_us = BenchTime_Period(BT_SLOWCALC_PRD, angletim.Instance->CNT, HAL_MAX_DELAY)/ANGLE_TIM2_FREQ_MHZ; BenchTime_Start(BT_SLOWCALC, angletim.Instance->CNT, HAL_MAX_DELAY); @@ -282,15 +293,7 @@ void UPP_Tick(void) if(upp.workmode == UPP_Init) return; - - if(GPIO_Read_Switch(&UPP_DIN.Pusk)) - { - upp.call->go = 1; - } - else - { - upp.call->go = 0; - } + UPP_Status_Handler(); } diff --git a/UPP/Core/UPP/upp_status.c b/UPP/Core/UPP/upp_status.c index d28d285..45043e4 100644 --- a/UPP/Core/UPP/upp_status.c +++ b/UPP/Core/UPP/upp_status.c @@ -6,7 +6,22 @@ * @details ******************************************************************************/ #include "upp_main.h" // всё остальное по работе с УПП +#include "upp_status.h" void UPP_Status_Handler(void) { + /* Хендлы для отладочных светодиодов (если выбран режим моргания) */ + GPIO_LED_Dynamic_Handle(&UPP_LEDS.green1); + GPIO_LED_Dynamic_Handle(&UPP_LEDS.green2); + GPIO_LED_Dynamic_Handle(&UPP_LEDS.red); + + + if(GPIO_Read_Switch(&UPP_DIN.Pusk)) + { + upp.call->go = 1; + } + else + { + upp.call->go = 0; + } } \ No newline at end of file diff --git a/UPP/Core/UPP/upp_status.h b/UPP/Core/UPP/upp_status.h index e33d67f..b7f21ed 100644 --- a/UPP/Core/UPP/upp_status.h +++ b/UPP/Core/UPP/upp_status.h @@ -8,6 +8,7 @@ #ifndef _UPP_STATUS_H #define _UPP_STATUS_H +#include "main.h" // общие библиотеки, конфигурации и вербальные имена из CubeMX - +void UPP_Status_Handler(void); #endif //_UPP_STATUS_H \ No newline at end of file diff --git a/UPP/MDK-ARM/UPP.uvoptx b/UPP/MDK-ARM/UPP.uvoptx index 9e21c7a..85341ea 100644 --- a/UPP/MDK-ARM/UPP.uvoptx +++ b/UPP/MDK-ARM/UPP.uvoptx @@ -154,7 +154,7 @@ 0 351 1 -
134230342
+
134232526
0 0 0 @@ -165,38 +165,6 @@ \\UPP\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c\351 - - 1 - 0 - 62 - 1 -
34
- 0 - 0 - 0 - 0 - 0 - 1 - C:\Users\I\AppData\Local\Arm\Packs\ARM\CMSIS-DSP\1.14.2\Source\ControllerFunctions\arm_pid_init_q31.c - - \\UPP\C:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS-DSP/1.14.2/Source/ControllerFunctions/ControllerFunctions.c\62 -
- - 2 - 0 - 333 - 1 -
0
- 0 - 0 - 0 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c - - -
@@ -217,17 +185,17 @@ 3 1 - RS_Buffer + test_green1,0x0A 4 1 - test_work,0x0A + test_green2,0x0A 5 1 - test_ready,0x0A + test_red,0x0A 6 @@ -237,7 +205,7 @@ 7 1 - test,0x0A + UPP_LEDS,0x0A 8 @@ -252,7 +220,7 @@ 10 1 - cnt_success + cnt_success,0x0A diff --git a/UPP/UPP.ioc b/UPP/UPP.ioc index 46b863a..4e903e3 100644 --- a/UPP/UPP.ioc +++ b/UPP/UPP.ioc @@ -307,18 +307,18 @@ PD6.GPIO_Label=DIN2 PD6.Locked=true PD6.Signal=GPIO_Input PE0.GPIOParameters=PinState,GPIO_Label -PE0.GPIO_Label=UM_LED_RED +PE0.GPIO_Label=UM_LED_GREEN1 PE0.Locked=true PE0.PinState=GPIO_PIN_SET PE0.Signal=GPIO_Output PE1.GPIOParameters=PinState,GPIO_Label -PE1.GPIO_Label=UM_LED_GREEN1 +PE1.GPIO_Label=UM_LED_GREEN2 PE1.Locked=true PE1.PinState=GPIO_PIN_SET PE1.Signal=GPIO_Output PE2.GPIOParameters=GPIO_Speed,PinState,GPIO_Label -PE2.GPIO_Label=UM_LED_GREEN2 -PE2.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM +PE2.GPIO_Label=UM_LED_RED +PE2.GPIO_Speed=GPIO_SPEED_FREQ_LOW PE2.Locked=true PE2.PinState=GPIO_PIN_SET PE2.Signal=GPIO_Output @@ -413,7 +413,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_ADC3_Init-ADC3-false-HAL-true,5-MX_USART3_UART_Init-USART3-false-HAL-true,6-MX_CAN1_Init-CAN1-false-HAL-true,7-MX_IWDG_Init-IWDG-false-HAL-true,8-MX_RTC_Init-RTC-true-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_TIM3_Init-TIM3-false-HAL-true,11-MX_USART6_UART_Init-USART6-false-HAL-true,12-MX_SPI3_Init-SPI3-false-HAL-true,13-MX_TIM11_Init-TIM11-false-HAL-true,14-MX_TIM12_Init-TIM12-false-HAL-true,15-MX_TIM8_Init-TIM8-false-HAL-true,16-MX_TIM5_Init-TIM5-false-HAL-true,17-MX_TIM2_Init-TIM2-false-HAL-true,18-MX_TIM6_Init-TIM6-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_ADC3_Init-ADC3-false-HAL-true,5-MX_USART3_UART_Init-USART3-false-HAL-true,6-MX_CAN1_Init-CAN1-false-HAL-true,7-MX_IWDG_Init-IWDG-false-HAL-true,8-MX_RTC_Init-RTC-true-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_TIM3_Init-TIM3-false-HAL-true,11-MX_USART6_UART_Init-USART6-false-HAL-true,12-MX_SPI3_Init-SPI3-false-HAL-true,13-MX_TIM11_Init-TIM11-false-HAL-true,14-MX_TIM12_Init-TIM12-false-HAL-true,15-MX_TIM8_Init-TIM8-false-HAL-true,16-MX_TIM5_Init-TIM5-false-HAL-true,17-MX_TIM2_Init-TIM2-false-HAL-true RCC.48MHZClocksFreq_Value=90000000 RCC.AHBFreq_Value=180000000 RCC.APB1CLKDivider=RCC_HCLK_DIV4