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 @@