当前位置:网站首页>FreeRTOS实验--一个函数创建多个任务
FreeRTOS实验--一个函数创建多个任务
2022-08-02 12:27:00 【山、】
之前说过,创建任务的时候,可以传递给任务参数,下面通过实验,对一个任务函数传入不同的参数展示如何使用一个函数创建多个任务。
任务函数:把传入的数据转换为int型数据然后打印出来。
void TaskAll(void * param)
{
int val = (int)param;
while(1)
{
printf("%d",val);
}
}
主函数:使用TaskAll
函数创建三个任务,每个任务传入不同的参数,除了传入参数不同,其他的参数都一样,实际上连传入的参数也可以相同,但是为了现象更加明显,这里传入了不同的参数。
int main( void )
{
prvSetupHardware();
printf("Hello World!\r\n");
xTaskCreate(TaskAll,"TaskAll",100,(void*)1,1,NULL);
xTaskCreate(TaskAll,"TaskAll",100,(void*)2,1,NULL);
xTaskCreate(TaskAll,"TaskAll",100,(void*)3,1,NULL);
vTaskStartScheduler();
return 0;
}
输出结果:
可以看到,一共有三个任务被执行。
那么为什么使用一个函数可以创建多个任务呢?
以为每个任务是不同的,每个任务又自己的栈空间,他们之间彼此互不干扰,只不过是他们每个任务的执行函数是一样的,都是把参数转换为int型然后打印出来。
由此我们可以明白,任务是任务,函数是函数。任务是互不相同的,即使任务的名字是一样的,但是任务的名字不重要,因为他们有自己独立的栈空间,所以他们是不同的任务。而函数是可以相同的,同一个函数名字,表示的就是一个函数,只不过这个函数可以被多个任务使用。
边栏推荐
- 网站自动翻译-网站批量自动翻译-网站免费翻译导出
- ABAP-OOAVL模板程序
- Seneor Exposure Basics
- Pod Scheduling Strategy: Affinity, Stain and Stain Tolerance
- Manual architecture, Mysql interview 126 questions
- Taurus.MVC V3.0.3 Microservice Open Source Framework Released: Make the evolution of .NET architecture easier in large concurrency.
- 学习经验分享之七:YOLOv5代码中文注释
- Software component analysis: 5 major capabilities to protect software supply chain security
- The ex-boyfriend bought chili water and threatened to rob his daughter. Can the woman apply for a personal safety protection order?
- Swiper系列之轮播图
猜你喜欢
numpy&pands 中的unique
Data Lake (2): What is Hudi
darknet训练yolov4模型
excel 批量翻译-excel 批量函数公司翻译大全免费
JVM简介
DTG-SSOD:最新半监督检测框架,Dense Teacher(附论文下载)
DTG-SSOD: The latest semi-supervised detection framework, Dense Teacher (with paper download)
力扣27-移除元素——简单题
photo-sphere-viewer中文文档
Import and export data of SQL Server database
随机推荐
Likou 209 - String with the Minimum Length - Sliding Window Method
如何更好评估信用贷风险?看这场评分卡模型直播就可以了
Software component analysis: 5 major capabilities to protect software supply chain security
svg实现的树木四季变化
Chapter 14 Manually create a REST service (2)
SQL Server2019安装步骤及脱机安装Microsoft机器学习组件下一步不能继续的问题
Drools(8): WorkBench uses
基于深度学习的裂缝检测技术
ABAP-OOAVL模板程序
Free Chinese-English Translation Software - Automatic Batch Chinese-English Translation Software Recommended Daquan
SQL Server如何建表
30 lines of code to realize serverless real-time health code recognition -- operation manual
自己如何做小程序呢?
中原银行实时风控体系建设实践
基础协议讲解
阿苹的思考
simulink PID自动整定
numpy&pands 中的unique
数据湖(一):数据湖概念
Data Lake (2): What is Hudi