littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于CC++的CoOp多任务算法库

项目简介

本项目是一个用于C/C++应用程序的Co-Op(合作式)多任务算法库,属于嵌入式软件类别。版本号为1.0.0,能为任何C/C++软件提供多任务处理支持,可简化嵌入式系统中任务的注册、调度和管理,支持AVR和STM32等多种嵌入式系统平台。

项目的主要特性和功能

  • 提供任务注册、删除、恢复、挂起等核心操作函数。
  • 支持任务延时执行,可通过Task_Delay函数设置延时时间和下一步骤。
  • 提供宏定义_COOP_NMB_OF_TASK,方便配置最大任务数量。
  • 可查询和设置任务的状态参数,如获取当前步骤参数、设置下一步骤参数。

安装使用步骤

假设已下载本项目的源码文件,可按以下步骤使用该库: 1. 将coop_core.ccoop_core.h文件添加到项目中。 2. 在代码里包含coop_core.h头文件。 3. 在coop_core_conf.h中设置最大任务数,示例: ```c++ / -------- Configuration -------- /

define _COOP_NMB_OF_TASK 3

4. 在1ms定时器中断服务程序中添加`Task_IncTick()`函数,示例:c++ Timer_ISR() { Task_IncTick(); } 5. 创建任务及其对应的函数,示例:c++ cTask_TypeDef Task1; cTask_TypeDef Task2; cTask_TypeDef Task3;

void Task1Func(uint8_t *argument) { LED1_Toggle(); Task_Delay(500, 0); }

void Task2Func(uint8_t *argument) { LED2_Toggle(); Task_Delay(500, 0); }

void Task3Func(uint8_t argument) { switch(argument) { case 0: // Step 0 is default { LED3_On(); Task_Delay(250, 1); // Wait 250ms and goto step 1 (case 1) } break; case 1: // Step 1 { LED3_Off(); Task_Delay(250, 0); // Wait 250ms and goto step 0 (case 0) } break;

default:
break;

}

} 6. 注册任务并运行CoOp系统,示例:c++ / Register User Tasks / Task_RegisterNew(&Task1, Task1Func); Task_RegisterNew(&Task2, Task2Func); Task_RegisterNew(&Task3, Task3Func);

/ Run CoOp System / Task_RunCoOpSystem(); ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】