硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5543|回复: 1
收起左侧

[有问必答] 关于 BSP_OS_TimeDlyMs (CPU_INT32U  dly_ms) 这个函数问题 ??

[复制链接]

680

主题

3480

回帖

5545

积分

论坛元老

积分
5545
发表于 2015-8-29 19:06:11 | 显示全部楼层 |阅读模式
/*
*********************************************************************************************************
*                                    BSP_TimeDlyMs()
*
* Description : This function delay the exceution for specifi amount of miliseconds
*
* Argument(s) : dly_ms       Delay in miliseconds
*
* Return(s)   : none.
*
* Caller(s)   : Application
*
* Note(s)     : none.
*
*********************************************************************************************************
*/

void   BSP_OS_TimeDlyMs (CPU_INT32U  dly_ms)
{
    CPU_INT16U  ms;
    CPU_INT16U  sec;
    OS_ERR      err;


    if (dly_ms > 10000u) {                                       /* Limit delays to 10 seconds.                        */
        dly_ms = 10000u;
    }

    if (dly_ms >= 1000u) {
        ms  = dly_ms / 1000u;          //   问题1, 此处应该是使用 % 吧 ??    因为1000/1000=1,到时1000ms最终变成了1ms   , 领导看看我的理解对不对啊 ?????????
        sec = dly_ms % 1000u;        //   问题2, 此处应该是使用  /   吧 ??   因为 1000%1000=0, 结果1000ms最终变成了0s
    } else {
        ms  = dly_ms;
        sec = 0u;
    }


    OSTimeDlyHMSM((CPU_INT16U) 0u,
                  (CPU_INT16U) 0u,
                  (CPU_INT16U) sec,
                  (CPU_INT32U) ms,
                  (OS_OPT    ) OS_OPT_TIME_HMSM_STRICT,
                  (OS_ERR   *)&err);
}
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-8-30 09:48:01 | 显示全部楼层
这里做错了,后面发布的例子里面已经做了修改。不过仍然感谢楼主告知。[s:151]
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-13 02:05 , Processed in 0.307234 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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