对嵌入式操作系统时间分片的一点理解

以 uCOS II 为例:
OS_TICKS_PER_SEC

如果 OS_TICKS_PER_SEC 为 100,表示 1 秒中断 100 次,也就意味着,任务切换时间为 10 ms。

这个很容易理解,但是怎么使用呢。

我们知道嵌入式常用的时间单位是 s、ms、us,OS_TICKS_PER_SEC 怎么和这些单位联系起来呢,又怎么去更好的理解它?

系统延时函数
OSTimeDly (x);
如果我想延时 100s,怎么做?
你把 OS_TICKS_PER_SEC 看成 1 s 的单位时间就行。
OSTimeDly (100 * OS_TICKS_PER_SEC );
因为 1 s 就是 OS_TICKS_PER_SEC ,那么 100 s 肯定是和 OS_TICKS_PER_SEC 相乘。

如果想延时 100 ms,怎么做?
OSTimeDly (OS_TICKS_PER_SEC / 10);

注意了,因为最小单位是 10ms,所以你不能延时更小的单位。

更多细节,更多精彩,欢迎关注微信公众号:emOsprey

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值