这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ucos 开发板上ucos试验程序的一个小问题

共2条 1/1 1 跳转至

ucos 开发板上ucos试验程序的一个小问题

院士
2006-09-17 18:14:16     打赏
ucos 开发板上ucos试验程序的一个小问题



关键词: 开发     试验     程序     一个     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 void TaskBeep (void *pdata)
{
    pdata = pdata;
    
    for (;;)
    {
        OSTaskSuspend(OS_PRIO_SELF);
        IO0CLR = BEEP;
        OSTimeDly(OS_TICKS_PER_SEC / 8);
        IO0SET = BEEP;
        OSTimeDly(OS_TICKS_PER_SEC / 4);

        IO0CLR = BEEP;
        OSTimeDly(OS_TICKS_PER_SEC / 8);
        IO0SET = BEEP;
        OSTimeDly(OS_TICKS_PER_SEC / 4);
    }
}

/*
********************************************************************************************************
**                            TaskKey1
**                            按键检测
*******************************************************************************************************
*/
void TaskKey1 (void *pdata)
{
    pdata = pdata;
    
    for (;;)
    {
        OSTimeDly(OS_TICKS_PER_SEC / 50);        // 延时20毫秒
        if ((IO0PIN & KEY1) != 0)
        {
            continue;
        }
        OSTimeDly(OS_TICKS_PER_SEC / 50);        // 延时20毫秒
        if ((IO0PIN & KEY1) != 0)
        {
            continue;
        }
        OSTaskResume(3);                        // 恢复TaskBeep任务,参数为优先级,要和TaskBeep的优先级一致
        while ((IO0PIN & KEY1) == 0)
        {
            OSTimeDly(OS_TICKS_PER_SEC / 50);     // 延时20毫秒
        }
    }
}
请问:当运行任务taskbeep时,当他运行到挂起函数后,他后面的程序还继续运行吗?如果不继续运行,那么什么时候才运行呢?如果继续运行,为什么已经挂起了还在运行?
当任务TaskKey1恢复taskbeep后,那么taskbeep就开始运行了,可到挂起时后面的程序还继续运行吗?     1: 请先学习操作系统相关教材。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]