#pragma once #ifdef __cplusplus extern "C" { #endif /* Includes ----------------------------------------------------------------- */ #include #include "FreeRTOS.h" #include "task.h" /* USER INCLUDE BEGIN */ /* USER INCLUDE END */ /* Exported constants ------------------------------------------------------- */ /* 任务运行频率 */ <<<<<<< HEAD #define BLINK_FREQ (500.0) #define IMU_FREQ (500.0) #define CTRL_CHASSIS_FREQ (500.0) #define ATTI_ESTI_FREQ (500.0) ======= #define BLINK_FREQ (100.0) #define RC_FREQ (500.0) #define ATTI_ESTI_FREQ (1000.0) #define CTRL_CHASSIS_FREQ (500.0) #define CTRL_GIMBAL_FREQ (500.0) >>>>>>> main /* 任务初始化延时ms */ #define TASK_INIT_DELAY (100u) #define BLINK_INIT_DELAY (0) <<<<<<< HEAD #define IMU_INIT_DELAY (0) #define CTRL_CHASSIS_INIT_DELAY (0) #define ATTI_ESTI_INIT_DELAY (0) ======= #define RC_INIT_DELAY (0) #define ATTI_ESTI_INIT_DELAY (0) #define CTRL_CHASSIS_INIT_DELAY (500) #define CTRL_GIMBAL_INIT_DELAY (0) >>>>>>> main /* Exported defines --------------------------------------------------------- */ /* Exported macro ----------------------------------------------------------- */ /* Exported types ----------------------------------------------------------- */ /* 任务运行时结构体 */ typedef struct { /* 各任务,也可以叫做线程 */ struct { osThreadId_t blink; <<<<<<< HEAD osThreadId_t imu; osThreadId_t ctrl_chassis; osThreadId_t atti_esti; ======= osThreadId_t rc; osThreadId_t atti_esti; osThreadId_t ctrl_chassis; osThreadId_t ctrl_gimbal; >>>>>>> main } thread; /* USER MESSAGE BEGIN */ struct { osMessageQueueId_t user_msg; /* 用户自定义任务消息队列 */ <<<<<<< HEAD struct { osMessageQueueId_t accl; osMessageQueueId_t gyro; osMessageQueueId_t eulr; osMessageQueueId_t quat; }imu; ======= osMessageQueueId_t chassis_imu; osMessageQueueId_t Chassis_cmd; >>>>>>> main } msgq; /* USER MESSAGE END */ /* 机器人状态 */ struct { float battery; /* 电池电量百分比 */ float vbat; /* 电池电压 */ float cpu_temp; /* CPU温度 */ } status; /* USER CONFIG BEGIN */ /* USER CONFIG END */ /* 各任务的stack使用 */ struct { UBaseType_t blink; <<<<<<< HEAD UBaseType_t imu; UBaseType_t ctrl_chassis; UBaseType_t atti_esti; ======= UBaseType_t rc; UBaseType_t atti_esti; UBaseType_t ctrl_chassis; UBaseType_t ctrl_gimbal; >>>>>>> main } stack_water_mark; /* 各任务运行频率 */ struct { float blink; <<<<<<< HEAD float imu; float ctrl_chassis; float atti_esti; ======= float rc; float atti_esti; float ctrl_chassis; float ctrl_gimbal; >>>>>>> main } freq; /* 任务最近运行时间 */ struct { float blink; <<<<<<< HEAD float imu; float ctrl_chassis; float atti_esti; ======= float rc; float atti_esti; float ctrl_chassis; float ctrl_gimbal; >>>>>>> main } last_up_time; } Task_Runtime_t; /* 任务运行时结构体 */ extern Task_Runtime_t task_runtime; /* 初始化任务句柄 */ extern const osThreadAttr_t attr_init; extern const osThreadAttr_t attr_blink; <<<<<<< HEAD extern const osThreadAttr_t attr_imu; extern const osThreadAttr_t attr_ctrl_chassis; extern const osThreadAttr_t attr_atti_esti; ======= extern const osThreadAttr_t attr_rc; extern const osThreadAttr_t attr_atti_esti; extern const osThreadAttr_t attr_ctrl_chassis; extern const osThreadAttr_t attr_ctrl_gimbal; >>>>>>> main /* 任务函数声明 */ void Task_Init(void *argument); void Task_blink(void *argument); <<<<<<< HEAD void Task_imu(void *argument); void Task_ctrl_chassis(void *argument); void Task_atti_esti(void *argument); ======= void Task_rc(void *argument); void Task_atti_esti(void *argument); void Task_ctrl_chassis(void *argument); void Task_ctrl_gimbal(void *argument); >>>>>>> main #ifdef __cplusplus } #endif