#include "ball.h" #include "main.h" #include "cmsis_os.h" #include "FreeRTOS.h" #include "bsp_delay.h" #define ballcome 1 #define balldown 0 //光电识别 int ball_in(void) { if (HAL_GPIO_ReadPin(ball_up_GPIO_Port, ball_up_Pin) == GPIO_PIN_SET) { return ballcome; } else { return balldown; } } int pass_ball(void) { if (HAL_GPIO_ReadPin(ball_in1_GPIO_Port, ball_in1_Pin) == GPIO_PIN_SET) { return ballcome; } else { return balldown; } } //运球 void handling_ball(int hand, int paw) { paw =ball_in(); if (hand == 1 && paw == 1) { //爪子 delay_us(100); HAL_GPIO_WritePin(paw_GPIO_Port, paw_Pin, GPIO_PIN_RESET); osDelay(2); delay_us(100); //上推 HAL_GPIO_WritePin(down_GPIO_Port, down_Pin, GPIO_PIN_RESET); hand=0; } else { //爪子 HAL_GPIO_WritePin(paw_GPIO_Port, paw_Pin, GPIO_PIN_SET); osDelay(2); delay_us(100); //下推 HAL_GPIO_WritePin(down_GPIO_Port, down_Pin, GPIO_PIN_SET); } } //接球 int catch_ball(int inball) { inball =pass_ball(); if(inball==1) { return ballcome; } else { return balldown; } }