OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3739|回复: 4

求助,为什么任务函数中必须得加一个delay()延时函数

[复制链接]

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
728
金钱
728
注册时间
2017-6-20
在线时间
188 小时
发表于 2017-12-5 15:42:17 | 显示全部楼层 |阅读模式
1金钱
最近想开始学习ucosiii, 发现每一个任务函数中都有一个delay()函数,我后来知道 这个delay()函数是为了阻塞高优先级的函数,所以我曾尝试用u16 i=1000;然后while(i--);这样实现一个延时,可是发现不能实现任务的切换了,我实在想不明白 这俩延时为什么会造成这样不同的结果,还希望大神们帮小弟一下~

最佳答案

查看完整内容[请看2#楼]

因为好让出CPU,去给其他任务运行的机会。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2017-12-5 15:42:18 | 显示全部楼层
因为好让出CPU,去给其他任务运行的机会。
回复

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-9-28
在线时间
11 小时
发表于 2017-12-6 15:32:09 | 显示全部楼层
Delay是放弃CPU的使用权,让其他优先级就绪的任务获取CPU的使用。while循环一致占用CPU
回复

使用道具 举报

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
728
金钱
728
注册时间
2017-6-20
在线时间
188 小时
 楼主| 发表于 2017-12-6 17:00:57 | 显示全部楼层
正点原子 发表于 2017-12-5 15:42
因为好让出CPU,去给其他任务运行的机会。

那这个delay()函数是通过什么让出CPU的呢,原理可以简单说一下嘛原子哥
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2018-1-19 13:59:42 | 显示全部楼层
天天mdk 发表于 2017-12-6 17:00
那这个delay()函数是通过什么让出CPU的呢,原理可以简单说一下嘛原子哥

就是阻塞delay的时间(形参传入),或者等待,这样理解也行
具体的可以看下os中delay函数的执行方式
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-2 04:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表