This commit is contained in:
Mysteo91
2023-07-28 17:29:45 +03:00
parent 4835d6a3a5
commit c6549ebd6f
10 changed files with 174 additions and 86 deletions

View File

@@ -34,8 +34,13 @@ extern "C" {
}
#include "uart_bridge.hpp"
#include "tim.h"
UartBridge bridge(true, USART1, USART2, 9600, 9600);
void zummerOff (void);
void zummerOn (void);
void lightingOn (void);
void lightingOff (void);
/************************************************************************************//**
** \brief Initializes the user program application. Should be called once during
** software program initialization.
@@ -50,8 +55,11 @@ void AppInit(void)
LedInit();
/* initialize the bootloader interface */
bridge.init();
zummerOff();
lightingOff();
/*
BootComInit();
*/
} /*** end of AppInit ***/
@@ -63,25 +71,72 @@ void AppInit(void)
**
****************************************************************************************/
uint8_t temp[2];
uint32_t controlPinMs = 0;
uint8_t controlPinFlag = 0;
uint8_t controlPinHighStart = 0;
uint8_t updateMode = 0;
void zummerOff (void)
{
HAL_TIM_Base_Stop(&htim3);
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_2);
}
void zummerOn (void)
{
HAL_TIM_Base_Start(&htim3);
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
}
void lightingOn (void)
{
HAL_GPIO_WritePin(LIGHTING_EN_GPIO_Port, LIGHTING_EN_Pin, GPIO_PIN_SET);
}
void lightingOff (void)
{
HAL_GPIO_WritePin(LIGHTING_EN_GPIO_Port, LIGHTING_EN_Pin, GPIO_PIN_RESET);
}
void AppTask(void)
{
if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC)))
{
temp[1] = bridge.uart1Buf->dequeue();
HAL_UART_Transmit_IT(bridge.getHuart2(), &temp[1], 1);
}
if (!updateMode) {
if (HAL_GPIO_ReadPin(CONTROL_PIN_GPIO_Port, CONTROL_PIN_Pin) == GPIO_PIN_SET) {
if (controlPinFlag == 0)
{
controlPinHighStart = HAL_GetTick();
controlPinFlag = 1;
}
} else if (controlPinFlag == 1) {
controlPinFlag = 0;
uint32_t ms = HAL_GetTick() - controlPinHighStart;
if (ms >= 5000 && ms < 5200) {
////////Update mode
HAL_UART_DeInit(&huart1);
BootComInit();
zummerOff();
lightingOff();
} else if (ms >= 100 && ms < 150) {
zummerOn();
//////ZUMMER ON
} else if (ms >= 200 && ms < 250) {
zummerOff();
//////ZUMMER OFF
}
}
if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC))) {
temp[1] = bridge.uart1Buf->dequeue();
HAL_UART_Transmit_IT(bridge.getHuart2(), &temp[1], 1);
}
if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC)))
if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC))) {
temp[2] = bridge.uart2Buf->dequeue();
HAL_UART_Transmit_IT(bridge.getHuart1(), &temp[2], 1);
}
}
else
{
temp[2] = bridge.uart2Buf->dequeue();
HAL_UART_Transmit_IT(bridge.getHuart1(), &temp[2], 1);
BootComCheckActivationRequest();
}
}
/* check for bootloader activation request */
/*
BootComCheckActivationRequest();
*/
/*** end of AppTask ***/