项目简介
本项目是一个用于C/C++应用程序的Co-Op(合作式)多任务算法库,属于嵌入式软件类别。版本号为1.0.0,能为任何C/C++软件提供多任务处理支持,可简化嵌入式系统中任务的注册、调度和管理,支持AVR和STM32等多种嵌入式系统平台。
项目的主要特性和功能
- 提供任务注册、删除、恢复、挂起等核心操作函数。
- 支持任务延时执行,可通过
Task_Delay
函数设置延时时间和下一步骤。 - 提供宏定义
_COOP_NMB_OF_TASK
,方便配置最大任务数量。 - 可查询和设置任务的状态参数,如获取当前步骤参数、设置下一步骤参数。
安装使用步骤
假设已下载本项目的源码文件,可按以下步骤使用该库:
1. 将coop_core.c
和coop_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】