综合技术
直播中

董超

7年用户 266经验值
私信 关注
[问答]

ucosⅢ中OSTimeDlyHMSM()函数中的OPT是什么

如题,小弟最近学习ucosⅢ,通过正点的视频在学习,在软件定时器的章节,发现在调用OStimeDlyHMSM()函数时,例程中的OPT是OS_OPT_TIME_PERIODIC,但是之前学习的时间管理中对OSTimeDlyHMSM的OPT只有OS_OPT_TIME_HMSM_STRICT和OS_OPT_TIME_HMSM_NON_STRICT两种,在这讲为什么设置成OS_OPT_TIME_PERIODIC?
图片中的这几个OPT什么时候需要用?
还请大家赐教!!
//正点的例程
//任务1的任务函数
void task1_task(void *p_arg)
{
        u8 key,num;
        OS_ERR err;
        while(1)
        {
                key = KEY_Scan(0);
                switch(key)
                {
                        case WKUP_PRES:     //当key_up按下的话打开定时器1
                                OSTmrStart(&tmr1,&err);        //开启定时器1
                                printf("开启定时器1rn");
                                break;
                        case KEY0_PRES:                //当key0按下的话打开定时器2
                                OSTmrStart(&tmr2,&err);        //开启定时器2
                                printf("开启定时器2rn");
                                break;
                        case KEY1_PRES:                //当key1按下话就关闭定时器
                                OSTmrStop(&tmr1,OS_OPT_TMR_NONE,0,&err);        //关闭定时器1
                                OSTmrStop(&tmr2,OS_OPT_TMR_NONE,0,&err);        //关闭定时器2
                                printf("关闭定时器1和2rn");
                                break;        
                }
                num++;
                if(num==50) //每500msLED0闪烁一次
                {
                        num = 0;
                        LED0 = ~LED0;        
                }
                OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err);   //延时10ms

回帖(2)

孟竹

2019-2-19 10:46:06
参考资料
举报

周玮

2019-2-19 10:57:49
您好,我的问题是在OSTimeDlyHMSM()这个函数里为什么OPT设置成OS_OPT_TIME_PERIODIC,为什么不设置成OS_OPT_TIME_HMSM_STRICT,这两种设置有什么不同?而不是在OSTimeDly()函数里,谢谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分