Фиксв светодиодов УМ

This commit is contained in:
2026-02-05 17:31:09 +03:00
parent 0a580dd6c2
commit 163b69ccc5
10 changed files with 64 additions and 84 deletions

View File

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

View File

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

View File

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

View File

@@ -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);
/* Очищаем выходы */

View File

@@ -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();
}

View File

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

View File

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

View File

@@ -154,7 +154,7 @@
<Type>0</Type>
<LineNumber>351</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134230342</Address>
<Address>134232526</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
@@ -165,38 +165,6 @@
<ExecCommand></ExecCommand>
<Expression>\\UPP\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c\351</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>62</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>34</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>C:\Users\I\AppData\Local\Arm\Packs\ARM\CMSIS-DSP\1.14.2\Source\ControllerFunctions\arm_pid_init_q31.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\UPP\C:/Users/I/AppData/Local/Arm/Packs/ARM/CMSIS-DSP/1.14.2/Source/ControllerFunctions/ControllerFunctions.c\62</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>333</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>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
@@ -217,17 +185,17 @@
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>RS_Buffer</ItemText>
<ItemText>test_green1,0x0A</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>test_work,0x0A</ItemText>
<ItemText>test_green2,0x0A</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>test_ready,0x0A</ItemText>
<ItemText>test_red,0x0A</ItemText>
</Ww>
<Ww>
<count>6</count>
@@ -237,7 +205,7 @@
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>test,0x0A</ItemText>
<ItemText>UPP_LEDS,0x0A</ItemText>
</Ww>
<Ww>
<count>8</count>
@@ -252,7 +220,7 @@
<Ww>
<count>10</count>
<WinNumber>1</WinNumber>
<ItemText>cnt_success</ItemText>
<ItemText>cnt_success,0x0A</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>

File diff suppressed because one or more lines are too long