OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 687|回复: 3

UCOSiii 任务延时时间达到疑问

[复制链接]

  离线 

4

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
金钱
292
注册时间
2018-4-13
在线时间
88 小时
发表于 2018-6-1 16:08:28 | 显示全部楼层 |阅读模式
5金钱
之前一个帖子发错版块了

当延时时间到了后,时钟节拍任务会把该等待延时的任务放入任务就绪表中,在寻找最高优先级的函数中会找到优先级最高的就绪任务,寻找最高优先级的函数会在任务调度的函数中调用,任务调度只有在调度点才会被调用,也就是说等待延时结束的任务会在下一个调度点任务调度后才有可能运行(此就绪任务为最高优先级的情况下),这样实时性不就得不到保障了嘛。

回复

使用道具 举报

  离线 

2

主题

135

帖子

0

精华

高级会员

Rank: 4

积分
698
金钱
698
注册时间
2017-7-18
在线时间
141 小时
发表于 2018-6-1 21:09:22 | 显示全部楼层
一个时钟节拍好像就会发起任务调度。
回复

使用道具 举报

  离线 

2

主题

135

帖子

0

精华

高级会员

Rank: 4

积分
698
金钱
698
注册时间
2017-7-18
在线时间
141 小时
发表于 2018-6-1 21:10:22 | 显示全部楼层
[C] 纯文本查看 复制代码
//systick中断服务函数,使用ucos时用到
void SysTick_Handler(void)
{	
	if(delay_osrunning==1)						//OS开始跑了,才执行正常的调度处理
	{
		OSIntEnter();							//进入中断
		OSTimeTick();       					//调用ucos的时钟服务程序               
		OSIntExit();       	 					//触发任务切换软中断
	}
}
回复

使用道具 举报

  离线 

8

主题

442

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1217
金钱
1217
注册时间
2015-8-25
在线时间
201 小时
发表于 2018-6-2 22:04:33 | 显示全部楼层
周易八索连山 发表于 2018-6-1 21:09
一个时钟节拍好像就会发起任务调度。

不一定是时钟节拍的,有的API就可以直接发起任务调度的
回复

使用道具 举报

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

本版积分规则




关闭

必看:"原子哥”力荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-8-17 06:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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