你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2212|回复: 3

ucOSii的延时时间和实际的不一样,慢了许多

[复制链接]

2

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-10-24 15:15:30 | 显示全部楼层 |阅读模式
ucOSii的延时时间和实际的不一样,慢了许多    
  #define OS_TICKS_PER_SEC     1000即每秒中断1000次, 时间间隔1ms  。可是我测的 OSTimeDly(2)的延时近300ms 本应该是2ms才对的 。大家有遇到类似情况吗 请大侠帮我分析下原因 
 
回复

使用道具 举报

3

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-10-24 18:09:37 | 显示全部楼层

回复:ucOSii的延时时间和实际的不一样,慢了许多

OSTimeDly函数的参数并不是毫秒数哦,是ticks!!! 下面是它的定义:
 
 
void  OSTimeDly (INT16U ticks)
{
    INT8U      y;
#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    OS_CPU_SR  cpu_sr = 0;
#endif
 
    if (OSIntNesting > 0) {                      /* See if trying to call from an ISR                  */
        return;
    }
    if (ticks > 0) {                             /* 0 means no delay!                                  */
        OS_ENTER_CRITICAL();
        y            =  OSTCBCur->OSTCBY;        /* Delay current task                                 */
        OSRdyTbl[y] &= ~OSTCBCur->OSTCBBitX;
        if (OSRdyTbl[y] == 0) {
            OSRdyGrp &= ~OSTCBCur->OSTCBBitY;
        }
        OSTCBCur->OSTCBDly = ticks;              /* Load ticks in TCB                                  */
        OS_EXIT_CRITICAL();
        OS_Sched();                              /* Find next task to run!                             */
    }
}
回复 支持 反对

使用道具 举报

24

主题

591

回帖

0

蝴蝶豆

中级会员

最后登录
2020-12-2
发表于 2012-10-24 21:00:20 | 显示全部楼层

RE:ucOSii的延时时间和实际的不一样,慢了许多

是啊 这个不是延时的例子。
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2012-10-25 09:50:00 | 显示全部楼层

RE:ucOSii的延时时间和实际的不一样,慢了许多

用OSTimeDlyHMSM这个。
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版