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

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

[复制链接]
阿正 提问时间:2012-10-24 15:15 /
ucOSii的延时时间和实际的不一样,慢了许多    
  #define OS_TICKS_PER_SEC     1000即每秒中断1000次, 时间间隔1ms  。可是我测的 OSTimeDly(2)的延时近300ms 本应该是2ms才对的 。大家有遇到类似情况吗 请大侠帮我分析下原因 
 
收藏 评论3 发布时间:2012-10-24 15:15

举报

3个回答
ray-395274 回答时间: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!                             */
    }
}
zykzyk-93033 回答时间:2012-10-24 21:00:20

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

是啊 这个不是延时的例子。
废鱼 回答时间:2012-10-25 09:50:00

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

用OSTimeDlyHMSM这个。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版