野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7582|回复: 3

[ucos] UCOS3的插入时钟节拍的门限是什么意思??

[复制链接]
发表于 2018-8-30 18:56:15 | 显示全部楼层 |阅读模式
这个UCOS3的延时大于门限是什么意思???
4](L5Q9S]T]`{@4OEGX$L~G.png
回复

使用道具 举报

发表于 2018-8-31 08:56:34 | 显示全部楼层
就是超时了
回复 支持 反对

使用道具 举报

发表于 2018-8-31 11:21:12 | 显示全部楼层
这说的是,如果你设定的时间点,比当前的时间点小,说明现在,已经经过了那个时间点,那么就不延时了,
怎么实现的呢,
假设我们当前系统的时间点是500,要延时的时间点是100,那么100-500-1,这是一个负数,如果我没猜错的话(没看过ucos的源码),时间都是无符号类型的,那么转换成无符号类型就是很大了,起码比OS_TICK_TH_RDY大,所以今日if中
当如果要延时的时间点是1000-100-500-1是个正数,就不会进入if,才能正常延时。
类似rtt中的:RT_TICK_MAX / 2,RT_TICK_MAX 是一个32位的无符号类型的数:0xffffffff

[mw_shl_code=c,false]            /* 获取当前系统时间 */
             current_tick = rt_tick_get();                        

            if ((next_timeout - current_tick) < RT_TICK_MAX / 2) {
                /* 计算下一个定时器溢出时间与当前时间的间隔 */
                next_timeout = next_timeout - current_tick;      
                 rt_thread_delay(next_timeout);                        
             }
         }
[/mw_shl_code]

回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-1 22:48:31 | 显示全部楼层
杰杰 发表于 2018-8-31 11:21
这说的是,如果你设定的时间点,比当前的时间点小,说明现在,已经经过了那个时间点,那么就不延时了,
怎 ...

嘻嘻我后来看了火哥的手把手教我写,里面有讲到。。。门限是2^32次方
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-2 11:11 , Processed in 0.035131 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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