Browse Source

更新非阻塞延时

master
DESKTOP-1PDT1EL\10564 2 weeks ago
parent
commit
9127a4d5fe
  1. 94
      Core/Src/main.c
  2. BIN
      Debug/Core/Src/main.o
  3. 12
      Debug/Core/Src/main.su
  4. BIN
      Debug/EchoNewBB0825.bin
  5. BIN
      Debug/EchoNewBB0825.elf
  6. 17710
      Debug/EchoNewBB0825.hex
  7. 106778
      Debug/EchoNewBB0825.list
  8. 3698
      Debug/EchoNewBB0825.map

94
Core/Src/main.c

@ -84,7 +84,68 @@ int can2_DispacherPeriod = 4;
/* Private variables ---------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */ /* USER CODE BEGIN PV */
typedef enum
{
ACT_UP = 0,
ACT_STOP1,
ACT_DOWN,
ACT_STOP2,
}ACT_STATE;
ACT_STATE g_state = ACT_UP;
uint32_t g_tick = 0;
void Actuator_Start(void) /*初始化*/
{
g_state = ACT_UP;
g_tick = HAL_GetTick();
GF_BSP_GPIO_SetIO(7,1);
GF_BSP_GPIO_SetIO(8,0);
}
void Actuator_Task(void) /*实现不阻塞延时*/
{
if(HAL_GetTick() - g_tick < 2000)
return;
g_tick = HAL_GetTick();
switch(g_state)
{
case ACT_UP:
// 上升
GF_BSP_GPIO_SetIO(7,1);
GF_BSP_GPIO_SetIO(8,0);
g_state = ACT_STOP1;
break;
case ACT_STOP1:
// 停止
GF_BSP_GPIO_SetIO(7,1);
GF_BSP_GPIO_SetIO(8,1);
g_state = ACT_DOWN;
break;
case ACT_DOWN:
// 下降
GF_BSP_GPIO_SetIO(7,0);
GF_BSP_GPIO_SetIO(8,1);
g_state = ACT_STOP2;
break;
case ACT_STOP2:
// 停止
GF_BSP_GPIO_SetIO(7,1);
GF_BSP_GPIO_SetIO(8,1);
// 如果只执行一轮
// return;
// 如果一直循环
g_state = ACT_UP;
break;
}
}
/* USER CODE END PV */ /* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/
@ -206,7 +267,7 @@ int main(void)
/* TCP echo server Init */ /* TCP echo server Init */
tcp_server_init(5000); tcp_server_init(5000);
Actuator_Start();
char InputInfo[500]; char InputInfo[500];
/* USER CODE END 2 */ /* USER CODE END 2 */
@ -215,7 +276,7 @@ int main(void)
/* USER CODE BEGIN WHILE */ /* USER CODE BEGIN WHILE */
while (1) { while (1) {
if (HAL_GetTick() - ledTick >= 3000) /*led翻转,表示程序运行状�?????*/ if (HAL_GetTick() - ledTick >= 1000) /*led翻转,表示程序运行状�?????*/
{ {
ledTick = HAL_GetTick(); ledTick = HAL_GetTick();
HAL_GPIO_TogglePin(IO_LED_GPIO_Port, IO_LED_Pin); //反转 HAL_GPIO_TogglePin(IO_LED_GPIO_Port, IO_LED_Pin); //反转
@ -226,21 +287,26 @@ int main(void)
HAL_GPIO_TogglePin(M_OUT5_GPIO_Port, M_OUT5_Pin); HAL_GPIO_TogglePin(M_OUT5_GPIO_Port, M_OUT5_Pin);
HAL_GPIO_TogglePin(M_OUT6_GPIO_Port, M_OUT6_Pin); HAL_GPIO_TogglePin(M_OUT6_GPIO_Port, M_OUT6_Pin);
} }
GF_BSP_GPIO_SetIO(7,1); /* 上升 0亮 1灭 不能同时为0,不能同时亮,会烧保险丝,为了给继电器吸合的反应时间*/
GF_BSP_GPIO_SetIO(8,0);/*推杆上升下降切换时时必须经过停止,延时1s*/
HAL_Delay(2000);
GF_BSP_GPIO_SetIO(7,1);/*停*/ Actuator_Task();
GF_BSP_GPIO_SetIO(8,1);
HAL_Delay(2000);
GF_BSP_GPIO_SetIO(7,0);/*下降*/ // GF_BSP_GPIO_SetIO(7,1); /* 上升 0亮 1灭 不能同时为0,不能同时亮,会烧保险丝,为了给继电器吸合的反应时间*/
GF_BSP_GPIO_SetIO(8,1); // GF_BSP_GPIO_SetIO(8,0);/*推杆上升下降切换时时必须经过停止,延时1s*/
HAL_Delay(2000); // HAL_Delay(2000);
//
// GF_BSP_GPIO_SetIO(7,1);/*停*/
// GF_BSP_GPIO_SetIO(8,1);
// HAL_Delay(2000);
//
// GF_BSP_GPIO_SetIO(7,0);/*下降*/
// GF_BSP_GPIO_SetIO(8,1);
// HAL_Delay(2000);
GF_BSP_GPIO_SetIO(7,1);/*停*/ // GF_BSP_GPIO_SetIO(7,1);/*停*/
GF_BSP_GPIO_SetIO(8,1); // GF_BSP_GPIO_SetIO(8,1);
HAL_Delay(2000); // HAL_Delay(2000);
memset(InputInfo, '\0', sizeof(InputInfo)); memset(InputInfo, '\0', sizeof(InputInfo));

BIN
Debug/Core/Src/main.o

Binary file not shown.

12
Debug/Core/Src/main.su

@ -1,5 +1,7 @@
../Core/Src/main.c:109:5:main 584 static,ignoring_inline_asm ../Core/Src/main.c:98:6:Actuator_Start 8 static
../Core/Src/main.c:282:6:SystemClock_Config 120 static ../Core/Src/main.c:106:6:Actuator_Task 8 static
../Core/Src/main.c:342:6:CV_GV_Init 64 static ../Core/Src/main.c:170:5:main 584 static,ignoring_inline_asm
../Core/Src/main.c:354:6:MPU_Config 24 static ../Core/Src/main.c:348:6:SystemClock_Config 120 static
../Core/Src/main.c:406:6:Error_Handler 4 static,ignoring_inline_asm ../Core/Src/main.c:408:6:CV_GV_Init 64 static
../Core/Src/main.c:420:6:MPU_Config 24 static
../Core/Src/main.c:472:6:Error_Handler 4 static,ignoring_inline_asm

BIN
Debug/EchoNewBB0825.bin

Binary file not shown.

BIN
Debug/EchoNewBB0825.elf

Binary file not shown.

17710
Debug/EchoNewBB0825.hex

File diff suppressed because it is too large

106778
Debug/EchoNewBB0825.list

File diff suppressed because it is too large

3698
Debug/EchoNewBB0825.map

File diff suppressed because it is too large
Loading…
Cancel
Save