文档详情

《嵌入式应用技术》课件——第5讲 创建uCOSIII流水灯任务.pdf

发布:2025-02-07约4.96千字共11页下载文档
文本预览下载声明

《嵌入式技术应用》课程

基于uCOSIII的LED流水灯设计

适用平台:STM32F10x

主讲教师:杜锋

创建uCOSIII流水灯任务

目录

Contents

1

流水灯功能描述

2

流水灯子任务及功能描述

3

创建流水灯子任务知识目标

了解知道

掌握了解

掌握理解

掌握

1.流水灯功能描述

流水灯功能描述

◆流水灯任务主要完成两大功能:

●D1每隔100毫秒闪烁一次;

●D1~D8每隔500毫秒轮流点亮;

◆实际工作过程请看演示视频

2.流水灯子任务及功能描述

流水灯子任务

◆为了完成流水灯功能,我们创建了三个任务

●起始任务(start_task);

●控制D1闪烁的任务(led0_task);

●控制D1~D8轮流点亮的任务(led1_task);

◆为了完成流水灯功能,我们创建了三个任务

●起始任务(start_task):在本任务中首先完成led0_task和led1_task两个任务的创建,然后挂起自己;

●任务0(led0_task):本任务主要完成D1的闪烁控制,延时和任务切换控制;

●任务1(led1_task):本任务主要完成D1~D8的闪烁控制,延时和任务切换控制。

3.创建流水灯任务

创建起始任务

1)函数OSTaskCreate()所需参数宏定义

#defineSTART_TASK_PRIO3//任务优先级

#defineSTART_STK_SIZE512//任务堆栈大小

OS_TCBStartTaskTCB;//任务控制块

CPU_STKSTART_TASK_STK[START_STK_SIZE];//任务堆栈

voidstart_task(void*p_arg);//任务函数

3.创建流水灯任务

创建起始任务

2)在主函数中创建起始任务

OSTaskCreate((OS_TCB*)StartTaskTCB,//任务控制块

(CPU_CHAR*)starttask,//任务名字

(OS_TASK_PTR)start_task,//任务函数

(void*)0,//传递给任务函数的参数

(OS_PRIO)START_TASK_PRIO,//任务优先级

(CPU_STK*)START_TASK_STK[0],//任务堆栈基地址

(CPU_STK_SIZE)START_STK_SIZE/10,//任务堆栈深度限位

(CPU_STK_SIZE)START_STK_SIZE,//任务堆栈大小

(OS_MSG_QTY)0,//任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息

(OS_TICK)0,//当使能时间片轮转时的时间片长度,为0时为默认长度

(void*)0,//用户补充的

显示全部
相似文档