以 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