/* ============================================================================= * app_tasks.h - Application 层任务公共声明 * 包含:任务心跳编号与 monitor_heartbeat()、freertos.c 弱函数的强定义、 * 新建任务函数声明、串口整帧回调声明(dr16/referee) * ========================================================================== */ #ifndef APP_TASKS_H #define APP_TASKS_H /* Application 层任务公共声明(覆盖 freertos.c 中的弱定义 + 新建任务) */ #include /* 任务心跳编号(monitor_task 检查各任务存活) */ typedef enum { HB_IMU = 0, HB_CMD, HB_GIMBAL, HB_SHOOT, HB_CHASSIS, HB_CCOMM, HB_REFEREE, HB_COUNT, } heartbeat_id_e; extern volatile uint8_t app_ready; // CAN_Task 完成硬件初始化后置 1 /* 各任务在循环内调用,向监控任务报活 */ extern void monitor_heartbeat(heartbeat_id_e id); /* 串口整帧回调(usart 空闲中断递交,CAN_Task 初始化时注册): * 云台板生效,底盘板为空实现 */ extern void dr16_frame_callback(const uint8_t * frame, uint16_t len); extern void referee_frame_callback(const uint8_t * frame, uint16_t len); /* ---- freertos.c 弱函数的强定义 ---- */ extern void CAN_Task(void const * argument); extern void LED_Task(void const * argument); extern void IMU_Task(void const * argument); // 仅云台板 /* ---- 新建任务 ---- */ extern void robot_cmd_task(void const * argument); extern void gimbal_task(void const * argument); // 仅云台板 extern void shoot_task(void const * argument); // 仅云台板 extern void chassis_task(void const * argument); // 仅底盘板 extern void c_comm_task(void const * argument); extern void referee_task(void const * argument); extern void debug_task(void const * argument); // USB 串口诊断输出 extern void shoot_detect_task(void const * argument); // 摩擦轮发射波动检测任务 #endif