60 lines
1.6 KiB
C
60 lines
1.6 KiB
C
#include "ball_task.h"
|
||
#include "TopDefine.h"
|
||
#include "FreeRTOS.h"
|
||
#include "attrTask.h"
|
||
#include <cmsis_os2.h>
|
||
#include "remote_control.h"
|
||
#include "ball.h"
|
||
#include "go.h"
|
||
|
||
|
||
extern RC_mess_t RC_mess;
|
||
extern GO go;
|
||
|
||
BASKETBALL basketball;
|
||
int bb=0;
|
||
int Turn_pos=0;
|
||
void Task_Ball(void *argument)
|
||
{
|
||
(void)argument; /* 未使用argument,消除警告 */
|
||
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
|
||
|
||
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计算 */
|
||
basketball.hand=0;
|
||
Turn_pos=20;
|
||
GO_TURN_ball(TURN,go,Turn_pos); //发射舵机位置
|
||
HAL_GPIO_WritePin(down_GPIO_Port, down_Pin, GPIO_PIN_SET);//收回
|
||
while(1)
|
||
{
|
||
|
||
// Turn_pos=20;
|
||
if(RC_mess.RC_data.sw[0]==306)//加速
|
||
{
|
||
basketball.hand=1;
|
||
}
|
||
else if(RC_mess.RC_data.sw[0]==1694)//减速
|
||
{
|
||
basketball.hand=0;
|
||
}
|
||
handling_ball(basketball.hand,Turn_pos);
|
||
bb=ball_in();
|
||
if(bb==1)
|
||
{
|
||
// HAL_GPIO_WritePin(key_GPIO_Port, key_Pin, GPIO_PIN_SET);
|
||
// HAL_GPIO_WritePin(paw_GPIO_Port, paw_Pin, GPIO_PIN_SET);
|
||
// HAL_GPIO_WritePin(down_GPIO_Port, down_Pin, GPIO_PIN_SET);
|
||
}
|
||
else
|
||
{
|
||
// HAL_GPIO_WritePin(key_GPIO_Port, key_Pin, GPIO_PIN_RESET);
|
||
// HAL_GPIO_WritePin(paw_GPIO_Port, paw_Pin, GPIO_PIN_RESET);
|
||
// HAL_GPIO_WritePin(down_GPIO_Port, down_Pin, GPIO_PIN_RESET);
|
||
}
|
||
|
||
|
||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||
osDelayUntil(tick); /* 运行结束,等待下一个周期唤醒 */
|
||
}
|
||
|
||
}
|