87 lines
2.8 KiB
C
87 lines
2.8 KiB
C
|
/*
|
|||
|
初始化任务
|
|||
|
根据机器人的FLASH配置,决定生成哪些任务。
|
|||
|
*/
|
|||
|
|
|||
|
/* Includes ----------------------------------------------------------------- */
|
|||
|
|
|||
|
#include "attrTask.h"
|
|||
|
|
|||
|
/* Private typedef ---------------------------------------------------------- */
|
|||
|
/* Private define ----------------------------------------------------------- */
|
|||
|
/* Private macro ------------------------------------------------------------ */
|
|||
|
/* Private variables -------------------------------------------------------- */
|
|||
|
/* Private function --------------------------------------------------------- */
|
|||
|
/* Exported functions ------------------------------------------------------- */
|
|||
|
|
|||
|
/**
|
|||
|
* \brief 初始化
|
|||
|
*
|
|||
|
* \param argument 未使用
|
|||
|
*/
|
|||
|
void Task_Init(void *argument) {
|
|||
|
(void)argument; /* 未使用argument,消除警告 */
|
|||
|
|
|||
|
// Config_Get(&task_runtime.cfg); /* 获取机器人配置 */
|
|||
|
|
|||
|
osKernelLock();
|
|||
|
|
|||
|
/* 任务 */
|
|||
|
|
|||
|
// led
|
|||
|
task_runtime.thread.led =
|
|||
|
osThreadNew(Task_Led, NULL, &attr_led);
|
|||
|
//can
|
|||
|
task_runtime.thread.can =
|
|||
|
osThreadNew(Task_Can, NULL, &attr_can);
|
|||
|
// dji_motor
|
|||
|
task_runtime.thread.dji_motor =
|
|||
|
osThreadNew(Task_Motor, NULL, &attr_motor);
|
|||
|
// odrive_shoot
|
|||
|
task_runtime.thread.shoot =
|
|||
|
osThreadNew(Task_Shoot, NULL, &attr_shoot);
|
|||
|
// go
|
|||
|
task_runtime.thread.go =
|
|||
|
osThreadNew(Task_Go, NULL, &attr_go);
|
|||
|
//
|
|||
|
// task_runtime.thread.left_gimbal =
|
|||
|
// osThreadNew(Task_Left_Gimbal, NULL, &attr_left_gimbal);
|
|||
|
|
|||
|
// task_runtime.thread.right_gimbal =
|
|||
|
// osThreadNew(Task_Right_Gimbal, NULL, &attr_right_gimbal);
|
|||
|
|
|||
|
// task_runtime.thread.gimbal_rec =
|
|||
|
// osThreadNew(Task_Gimbal_Rec, NULL, &attr_gimbal_rec);
|
|||
|
/* 消息队列 */
|
|||
|
//can
|
|||
|
// task_runtime.queue.can.feedback.chassis =
|
|||
|
// osMessageQueueNew(1u, sizeof(CAN_ChassisMotor_t), NULL);
|
|||
|
// task_runtime.queue.can.feedback.gimbal =
|
|||
|
// osMessageQueueNew(1u, sizeof(CAN_GimbalMotor_t), NULL);
|
|||
|
// task_runtime.queue.feedback_left=
|
|||
|
// osMessageQueueNew(1u, sizeof(Parsing_Data_t), NULL);
|
|||
|
// task_runtime.queue.feedback_right =
|
|||
|
// osMessageQueueNew(1u, sizeof(Parsing_Data_t), NULL);
|
|||
|
// task_runtime.queue.cmd_left=
|
|||
|
// osMessageQueueNew(1u, sizeof(CMD_gimbal_t), NULL);
|
|||
|
// task_runtime.queue.cmd_right =
|
|||
|
// osMessageQueueNew(1u, sizeof(CMD_gimbal_t), NULL);
|
|||
|
|
|||
|
/* 互斥量 */
|
|||
|
|
|||
|
// task_runtime.mutex.can.er_2 =
|
|||
|
// xSemaphoreCreateMutex();
|
|||
|
//
|
|||
|
// task_runtime.mutex.cmd_left =
|
|||
|
// xSemaphoreCreateMutex();
|
|||
|
// task_runtime.mutex.cmd_right =
|
|||
|
// xSemaphoreCreateMutex();
|
|||
|
// task_runtime.mutex.feedback_left =
|
|||
|
// xSemaphoreCreateMutex();
|
|||
|
// task_runtime.mutex.feedback_right =
|
|||
|
// xSemaphoreCreateMutex();
|
|||
|
|
|||
|
osKernelUnlock();
|
|||
|
osThreadTerminate(osThreadGetId()); /* 结束自身 */
|
|||
|
}
|